前の記事「Oracle CONNECTおよびRESOURCEロールのまとめ」を書いていて、ふと気になったのですが、サンプル・スキーマのSCOTTユーザーの権限ははどうなっているのでしょうか。
SCOTTユーザーの権限は非推奨の CONNECTロールとRESOURCE ロールを使用していたはずです。Oracle12c では非推奨なので使われなくなっているのでしょうか。
サンプルスキーマの作成スクリプト ORACLE_HOME/rdbms/admin/utlsampl.sql を見ると、
GRANT CONNECT,RESOURCE,UNLIMITED TABLESPACE TO SCOTT IDENTIFIED BY tiger;
となっていました。
まだ、非推奨の RESOURCE ロールと CONNECT ロールが使われているようですね。
また、12c から RESOURCE ロールでは付与されなくなったUNLIMITED TABLESPACE 権限が別に付与されています。コメントに、
Rem mmoore 04/08/91 - use unlimited tablespace priv
と記載されていますので、だいぶ昔から RESOURCE ロールとは別に付与されていたようです。
データディクショナリで確認してみます。
SQL> select * from user_role_privs;
GRANTEE GRANTED_ROLE
---------- -------------
SCOTT RESOURCE
SCOTT CONNECT
SQL> select * from user_sys_privs;
USERNAME PRIVILEGE
--------- ---------------------
SCOTT UNLIMITED TABLESPACE
現セッションで利用できる権限を見てみます。
SQL> select * from session_privs;
PRIVILEGE
----------------------------------------
SET CONTAINER
CREATE INDEXTYPE
CREATE OPERATOR
CREATE TYPE
CREATE TRIGGER
CREATE PROCEDURE
CREATE SEQUENCE
CREATE CLUSTER
CREATE TABLE
UNLIMITED TABLESPACE
CREATE SESSION
昔、CONNECT ロールに付与されていた
- ALTER SESSION
- CREATE DATABASE LINK
- CREATE SYNONYM
- CREATE VIEW
は付与されてないですね。
非CDB環境で確認しているのですが、非CDBでは必要ないはずのコンテナの切替権限 SET CONTAINER が付与されています。
CONNECT ロールに新たに付与されているようです。
SQL> select * from role_sys_privs where ROLE = 'CONNECT';
ROLE PRIVILEGE
-------------------- --------------
CONNECT SET CONTAINER
CONNECT CREATE SESSION
No comments:
Post a Comment