前の記事「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