【Oracle】ユーザ&ロール作成 | NOSAKAブログ

やりたいこと

EC2インスタンスからsqlplusで接続し、ユーザとロールを作成する。

環境:RDS Oracle db.t2.micro

 

手順

■EC2にsqlplusをインストール

・Oracleダウンロードサイトからパッケージを入手。

https://www.oracle.com/technetwork/topics/linuxx86-64soft-092277.html

・ローカルに保存し、scpでec2へ転送

$ scp -i <鍵ファイルへのパス> oracle-instantclient18.5-basic-18.5.0.0.0-3.x86_64.rpm ec2-user@xx.xx.xx.xx:/home/ec2-user
$ scp -i <鍵ファイルへのパス> oracle-instantclient18.5-sqlplus-18.5.0.0.0-3.x86_64.rpm ec2-user@xx.xx.xx.xx:/home/ec2-user

 

 

・インストール

$ sudo rpm -ivh oracle-instantclient18.5-basic-18.5.0.0.0-3.x86_64.rpm
$ sudo rpm -ivh oracle-instantclient18.5-sqlplus-18.5.0.0.0-3.x86_64.rpm

*basicから先にインストールする

 

・環境変数の設定

$ export LD_LIBRARY_PATH=/usr/lib/oracle/18.5/client64/lib

 

これでsqlplusのインストールは完了!

 

■Oracleインスタンスへ接続

$ sqlplus 'user_name@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=dns_name)(PORT=port))(CONNECT_DATA=(SID=database_name)))' 

user_name:ユーザ名

dns_name:エンドポイント

port:ポート番号(デフォルト1521)

database_name:データベース名(デフォルトORCL)

リファレンスはここ。

 

■sqlplusの成形

SQL> set linesize 数値 <--折り返し幅の指定
SQL> ho stty erase [Backspace]  <--Backspaceで文字削除できるように

 

■ロール作成&権限付与

SQL> create role testRole;
SQL> grant select any table to testRole;
SQL> grant connect to testRole;
SQL> select * from role_sys_privs where ROLE = 'TESTROLE';   <--ロールの権限確認

*DBに格納された値は大文字で格納されているよ。"TESTROLE"で検索しないと出てこない。

 

■ユーザ作成&ロール付与

SQL> create user testUser IDENTIFIED BY "********"
SQL> grant TESTROLE to TESTUSER;
SQL> select * from dba_role_privs where GRANTEE = 'TESTUSER'; <--TESTUSERに付与されたロール確認