web-dev-qa-db-ja.com

sysoperとしてシャットダウンする際の「権限不足」

Sysoperが許可されている一般的なユーザーでデータベースをシャットダウンできません。

PDBユーザーに対して同じ操作を実行すると、sysoperは問題なくPDBをシャットダウン/起動できるため、これと私が認識していないPDBの間には明らかに不一致があります(ドキュメントも明確にされていません)。私が調べた他の例でも、何も問題はないはずです。何が欠けていますか?

正確なエラーメッセージは次のとおりです。

ORA-01031: insufficient privileges

洞察をありがとう。

Insufficient privileges as sysoper

2
Stazz

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.
3
JSapkota