1.8 调整清除权限
背景 普通用户需要执行其作业必不可少(不多不少)的权限。 但是,这种策略不太现实,您可能需要采用一种中间道路方法: 删除用户不需要的最强大的权限。
例如,CREATE ANY TABLE 就是一个强大的权限,它使用户可通过任意模式而不只是它自己的模式创建表。 用户几乎不需要该权限;您可以放心地收回该权限。 另一方面,QUERY REWRITE 之类允许用户会话重新写入查询以利用基于函数的索引或物化视图的权限则相对无害。
策略 首先,识别您认为无害的所有权限(CREATE TYPE、CREATE SESSION 等等)。 这里,我将 UNLIMITED TABLESPACE 包含在非清除权限内,但是您可能不这样认为。 set pages 50000
break on privilege skip 1
select privilege, grantee, admin_option
from dba_sys_privs
where privilege not in
(
/* list any other privilege here you don't find
"sweeping"
*/
'ALTER SESSION',
'QUERY REWRITE',
'CREATE DIMENSION',
'CREATE INDEXTYPE',
'CREATE LIBRARY',
'CREATE OPERATOR',
'CREATE PROCEDURE',
'CREATE SEQUENCE',
'CREATE SESSION',
'CREATE SNAPSHOT',
'CREATE SYNONYM',
'CREATE TABLE',
'CREATE TRIGGER',
'CREATE TYPE',
'CREATE USER',
'CREATE VIEW',
'UNLIMITED TABLESPACE'
)
and grantee not in
('SYS','SYSTEM','WKSYS','XDB',
'MDSYS','ORDPLUGINS','ODM','DBA')
/* Place all the user names you want to exclude */
order by privilege, grantee
/
下面是一个示例输出的一部分: PRIVILEGE GRANTEE ADM
--------------------------- ------------------------------ ---
ADMINISTER DATABASE TRIGGER EXFSYS NO
IMP_FULL_DATABASE NO
ADMINISTER RESOURCE MANAGER EXP_FULL_DATABASE NO
IMP_FULL_DATABASE NO
ALTER ANY MATERIALIZED VIEW DWETL NO
REPORTMAN NO
ALTER ANY OUTLINE REPORTMAN NO
ALTER ANY PROCEDURE IMP_FULL_DATABASE NO
QCO NO
ALTER ANY RULE CDC_PUB YES
ALTER ANY RULE SET CDC_PUB YES
ALTER ANY TABLE IMP_FULL_DATABASE NO
CNSMP NO
QCO NO
ALTER ANY TRIGGER IMP_FULL_DATABASE NO
QCO NO
VCHANG NO
ALTER ANY TYPE IMP_FULL_DATABASE NO
ALTER SYSTEM ORADBA NO
QCO NO
ALTER TABLESPACE QCO NO
ALTER USER QCO NO
SYSMAN NO
ANALYZE ANY AFFMAN NO
ARAO NO
CONCASTER NO
CREATE ANY SYNONYM ATHOTANG YES
ARUP YES
IMP_FULL_DATABASE NO
DB_MONITOR YES
QCO YES
RCHUNG YES
SPOT YES
CREATE ANY TABLE IMP_FULL_DATABASE NO
CNSMP NO
QCO NO
SYSMAN NO
DROP ANY TABLE ATHOTANG YES
IMP_FULL_DATABASE NO
CNSMP NO
QCO YES
_ and so on _
注意该输出的一些关键行。 某些清除权限(例如 DROP ANY TABLE)可能不应该授予任何人。 在本例中,让我们来看看哪些用户拥有该权限。
- IMP_FULL_DATABASE 是用于数据库完全导入的角色,通常授给 DBA 或在导入中需要的任何其他用户。 该权限可能是必需的。
- QCO 表示 Quest Central for Oracle,它是管理数据库的常用工具。 该权限可能是必需的。
- 用户 CNSMP 和 ATHOTANG 似乎不需要任何清除权限,除非他们是 DBA。 应该收回该权限。
(编辑:anna sui)
|