Oracle
Oracle:對授予我的使用者的權限有點困惑
我想在我的數據庫上向我的非 dba 使用者授予很少的權限。我給創建會話,創建表,視圖等。這個查詢似乎證實了
SELECT privilege from USER_SYS_PRIVS; PRIVILEGE ------------------------------------------------------------------------------------------------------------------------ CREATE PROCEDURE CREATE VIEW CREATE TABLE CREATE SESSION
但我看到我可以將角色和使用者創建為非特權使用者
create role mich identified by blablabla; Role created SQL> create user mich1 identified by blablabla; User created
對於一個簡單的使用者來說,創建使用者和角色的權限是不是太多了?
作為 DBA 使用者,我嘗試撤銷…
SQL> revoke create user from myuser; revoke create user from myuser * ERROR at line 1: ORA-01952: system privileges not granted to 'MYUSER'
我檢查我的使用者是否具有 dba 角色(我以 dba 使用者身份執行這些命令)
SELECT granted_role FROM dba_role_privs where grantee='MYUSER'; GRANTED_ROLE -------------------------------------------------------------------------------- IMP_FULL_DATABASE RESOURCE MICH EXP_FULL_DATABASE CONNECT SQL> revoke DBA from myuser; revoke DBA from myuser * ERROR at line 1: ORA-01951: ROLE 'DBA' not granted to 'MYUSER'
我從我的“非特權”使用者中刪除了 MICH 和 RESOURCE 角色,但他仍然可以創建其他使用者和角色。
另一個奇怪的事情:
作為非特權使用者,我做了..
SQL> select * from SESSION_PRIVS; PRIVILEGE ------------------------------------------------------------------------------------------------------------------------ AUDIT SYSTEM CREATE SESSION CREATE TABLESPACE ALTER TABLESPACE DROP TABLESPACE CREATE USER BECOME USER ALTER USER DROP USER....
– 其他 69 行..
作為一個 sysdba 我做了..
revoke CREATE USER from myuser * ERROR at line 1: ORA-01952: system privileges not granted to 'MYUSER'
找到解決方案。我從使用者中刪除了 CONNECT
revoke CONNECT from myuser
我會根據需要分配權限
grant create session, create table to myuser
現在創建使用者權限不足(錯誤 ORA-01031),當我以非 dba 使用者身份嘗試時
您的使用者顯然具有 DBA 角色。看看這個
SELECT granted_role FROM dba_role_privs where grantee='xxx';
其中 xxx 是您的使用者名(通常為大寫字母)