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