OracleデータベースDBA権限回復操作リファレンス

1.基本的な操作手順

1.現在のシステムを表示するORACLE_SID(linux)

# su - oracle
$ cat /etc/oratab
orcl:/oracle/app/oracle/product/11.2.0/dbhome_1:N
crm:/oracle/app/oracle/product/11.2.0/dbhome_1:N

2.現在のシステムORACLE_SID(windows)
確認し、[コントロールパネル]-[システムセキュリティ]-[管理ツール]-[サービス]を
開いて、OracleServiceORCL、OracleServiceCRMなどのOracleServiceで始まる関連サービス見つけます。このようなサービスはいくつかあります。いくつかの例があり
ます。3。ORACLE_SIDの切り替え(linux)

$ echo $ORACLE_SID
orcl
$ export ORACLE_SID=crm
$ echo $ORACLE_SID
crm
$ sqlplus / as sysdba

4. ORACLE_SID(windows)を切り替えます

C:\Users\sqluser> sqlplus sys/passwd@crm as sysdba
或者
C:\Users\sqluser> set oracle_sid=crm
C:\Users\sqluser> sqlplus /nolog
SQL> connect /as sysdba  或 SQL> connect sys/passwd@crm as sysdba
SQL> select name from v$database;   或  SQL> select instance_name from v$instance;

2.許可回復の準備

備考:最初に次のステートメントを実行して、ユーザーがDBA権限を持っているかどうかをフィルタリングします。持っていない場合(sys / systemユーザーを除く)、後続の操作は無視できます。

SQL> select * from dba_role_privs where GRANTED_ROLE= 'DBA';
GRANTEE    GRANTED_ROLE        ADM DEF
------------------------------ ------------------------------ --- ---
SYS                DBA                YES YES
SYSTEM             DBA                YES YES

1.各インスタンスで使用できるようになっているユーザーを数えます

SQL> select username from dba_users where account_status='OPEN';
USERNAME
------------------------------
SYS
SYSTEM
ERP
3 rows selected.

2.各ユーザーが持っているロール権限(dba_role)を数え、大文字にするユーザー名に注意します。例としてのユーザー名ERPは次のとおりです。

SQL> select * from dba_role_privs where GRANTEE= 'ERP';
GRANTEE                GRANTED_ROLE           ADM DEF
------------------------------ ------------------------------ --- ---
ERP                DBA                NO  YES
ERP                RESOURCE               NO  YES
ERP                CONNECT                NO  YES

3.各ユーザーが持つシステム権限(dba_sys)の統計、ユーザー名に注意して大文字にする必要があります。例としてのユーザー名ERPは次のとおりです。

SQL> select * from dba_sys_privs where GRANTEE='ERP';
GRANTEE                PRIVILEGE                ADM
------------------------------ ---------------------------------------- ---
ERP                CREATE ANY SYNONYM           NO
ERP                UNLIMITED TABLESPACE         NO
ERP                CREATE SESSION               NO

3.操作はDBA権限を取り戻します

1.dba権限を再利用します

SQL> revoke dba from ERP;
Revoke succeeded

  1. 必要な権限を再承認します
SQL> grant connect,resource to ERP;
grant create view to ERP;
grant create public synonym to ERP;
grant drop public synonym to ERP;
grant unlimited tablespace to ERP;
Grant succeeded.

3.権限を確認します

SQL> select * from dba_role_privs where GRANTEE= 'ERP';
GRANTEE                GRANTED_ROLE           ADM DEF
------------------------------ ------------------------------ --- ---
ERP            CONNECT                NO  YES
ERP            RESOURCE               NO  YES
SQL> select * from dba_sys_privs where GRANTEE='ERP';
GRANTEE                PRIVILEGE                ADM
------------------------------ ---------------------------------------- ---
ERP            CREATE VIEW              NO
ERP            DROP PUBLIC SYNONYM          NO
ERP            CREATE PUBLIC SYNONYM            NO
ERP            UNLIMITED TABLESPACE         NO

4.他の危険なdbaロール権限、特にDROP ANY、UPDATE ANY、ALTER ANY、およびADMINISTERで始まる権限の回復は、状況に応じて慎重に判断して回復する必要があります。これはDROP ANYTABLEの例です。

SQL> revoke DROP ANY TABLE from ERP;
Revoke succeeded.

4.注意が必要な事項

注:ADM列に「はい」と表示されている場合は、権限にWITH ADMIN OPTION(システム権限の場合)またはWITH GRANT OPTION(オブジェクト権限の場合)があることを意味し、権限を再利用して再承認する必要があります。
例は次のとおりです。

1. ERPユーザーが持っているロール権限を照会します(dba_role)

SQL> select * from dba_role_privs where GRANTEE='ERP';
GRANTEE                GRANTED_ROLE           ADM DEF
------------------------------ ------------------------------ --- ---
ERP                CONNECT                YES YES
ERP                AQ_USER_ROLE           YES YES
ERP                RESOURCE               NO  YES

2. ADMによって「はい」とリストされている権限を再利用し、再承認します

SQL> revoke connect from ERP;
Revoke succeeded.
SQL> revoke AQ_USER_ROLE from ERP;
Revoke succeeded.
SQL> grant connect to ERP;
Grant succeeded.

3.権限を確認します

SQL> select * from dba_role_privs where GRANTEE='ERP';
GRANTEE                GRANTED_ROLE           ADM DEF
------------------------------ ------------------------------ --- ---
ERP                CONNECT                NO  YES
ERP                AQ_USER_ROLE           NO  YES
ERP                RESOURCE               NO  YES

4.権限の回復によるデータベース間の例外を回避するためにdblinkがあるかどうかを確認します

SQL> select * from dba_objects where object_type like '%LINK%';

5.終了

おすすめ

転載: blog.51cto.com/8355320/2561627