我想在我的数据库上向我的非 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'