Sysoperが許可されている一般的なユーザーでデータベースをシャットダウンできません。
PDBユーザーに対して同じ操作を実行すると、sysoperは問題なくPDBをシャットダウン/起動できるため、これと私が認識していないPDBの間には明らかに不一致があります(ドキュメントも明確にされていません)。私が調べた他の例でも、何も問題はないはずです。何が欠けていますか?
正確なエラーメッセージは次のとおりです。
ORA-01031: insufficient privileges
洞察をありがとう。
SYSOPER
特権をどのように付与したかによって異なります。データベースインスタンスをシャットダウンするには、すべてのコンテナに対するSYSOPER
権限が必要です。
以下にシナリオを示します。
一般的なユーザーコールC##_TEST
があります。
[Oracle@ora12c dbs]$ sqlplus sys@oracdb as sysdba
SQL*Plus: Release 12.1.0.2.0 Production on Fri Dec 2 08:47:05 2016
Copyright (c) 1982, 2014, Oracle. All rights reserved.
Enter password:
Connected to:
Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production
With the Partitioning, Automatic Storage Management, OLAP, Advanced Analytics
and Real Application Testing options
SQL> select common from dba_users where username='C##_TEST';
COM
---
YES
SYSOPER
(CDB)のみをユーザーにORACDB
を付与しました。
SQL> grant sysoper to c##_test container=current;
Grant succeeded.
次に、C ## _ TESTユーザーをSYSOPER
として使用してコンテナーデータベースに接続し、データベースをシャットダウンしようとしたところ、ORA-01031
エラーが発生しました。
[Oracle@ora12c dbs]$ sqlplus c##_test/test@oracdb as sysoper
SQL*Plus: Release 12.1.0.2.0 Production on Fri Dec 2 08:49:05 2016
Copyright (c) 1982, 2014, Oracle. All rights reserved.
Connected to:
Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production
With the Partitioning, Automatic Storage Management, OLAP, Advanced Analytics
and Real Application Testing options
SQL> shut immediate;
ORA-01031: insufficient privileges
SQL>
ここで、SYSOPER
特権をオプションcontainer=all
で再度付与しました。今回は、ユーザーがデータベースをシャットダウンできます。
[Oracle@ora12c dbs]$ sqlplus sys@oracdb as sysdba
SQL*Plus: Release 12.1.0.2.0 Production on Fri Dec 2 08:49:36 2016
Copyright (c) 1982, 2014, Oracle. All rights reserved.
Enter password:
Connected to:
Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production
With the Partitioning, Automatic Storage Management, OLAP, Advanced Analytics
and Real Application Testing options
SQL> grant sysoper to c##_test container=all;
Grant succeeded.
SQL> exit
Disconnected from Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production
With the Partitioning, Automatic Storage Management, OLAP, Advanced Analytics
and Real Application Testing options
[Oracle@ora12c dbs]$ sqlplus c##_test/test@oracdb as sysoper
SQL*Plus: Release 12.1.0.2.0 Production on Fri Dec 2 08:50:06 2016
Copyright (c) 1982, 2014, Oracle. All rights reserved.
Connected to:
Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production
With the Partitioning, Automatic Storage Management, OLAP, Advanced Analytics
and Real Application Testing options
SQL> shut immediate;
Database closed.
Database dismounted.
Oracle instance shut down.