给用户授予权限时应该尽量避免ANY系统权限

  Oracle推荐给用户授予权限时,给予用户可以完成操作的最小权限。应当尽量避免对用户授予包含ANY的系统权限,如SELECT ANY TABLE,
CREATE ANY TABLE等。这些包含ANY的系统权限很大,只应该授权给DBA用户,而不应该授权给普通用户。如果给非DBA用户授权ANY系统权限,则会使数据库处于不安全状态。下面的例子展示了一个用户具有了CREATE ANY PROCEDURE和EXECUTE ANY PROCEDURE权限,就可以通过其他方式获取数据库中所有的权限。

SQL> create user a identified by a;

用户已创建

SQL> grant create session to a;

授权成功。

SQL> grant create any procedure, execute any procedure to a;

授权成功。

SQL> conn a/[email protected]
已连接。
SQL> select * from session_privs;

PRIVILEGE
----------------------------------------
CREATE SESSION
CREATE ANY PROCEDURE
EXECUTE ANY PROCEDURE

SQL> select * from session_roles;

未选定行

SQL> create procedure system.p_execute(p_str in varchar2) as
  2  begin
  3  execute immediate p_str;
  4  end;
  5  /

过程已创建。

SQL> exec system.p_execute(‘grant dba to a‘);

PL/SQL 过程已成功完成。

SQL> conn a/[email protected]
已连接。
SQL> select * from session_privs;
PRIVILEGE
----------------------------------------
ALTER SYSTEM
AUDIT SYSTEM
CREATE SESSION
ALTER SESSION
RESTRICTED SESSION
.
.
.
ALTER ANY RULE SET
DROP ANY RULE SET
EXECUTE ANY RULE SET

已选择140行。

SQL> select * from session_roles;

ROLE
------------------------------
DBA
SELECT_CATALOG_ROLE
HS_ADMIN_ROLE
EXECUTE_CATALOG_ROLE
DELETE_CATALOG_ROLE
EXP_FULL_DATABASE
IMP_FULL_DATABASE
GATHER_SYSTEM_STATISTICS
WM_ADMIN_ROLE

已选择9行。

授权实例,生产环境应避免any

--授权
GRANT
CONNECT,
RESOURCE,
--DBA,
--unlimited tablespace,
CREATE  SESSION,
CREATE ANY SEQUENCE,
CREATE ANY TABLE,
CREATE ANY VIEW ,
CREATE ANY INDEX,
CREATE ANY PROCEDURE,
CREATE ANY DIRECTORY,
ALTER  SESSION,
ALTER ANY SEQUENCE,
ALTER ANY TABLE,
--ALTER ANY VIEW ,        --不能修改视图
ALTER ANY INDEX,
ALTER ANY PROCEDURE,
--ALTER ANY DIRECTORY,    --不能修改目录
--DROP  SESSION,       --不能删除Session
DROP ANY SEQUENCE,
DROP ANY TABLE,
DROP ANY VIEW ,
DROP ANY INDEX,
DROP ANY PROCEDURE,
DROP ANY DIRECTORY,
SELECT ANY TABLE,
SELECT ANY DICTIONARY,
INSERT ANY TABLE,
UPDATE ANY TABLE,
DELETE ANY TABLE,
DEBUG ANY PROCEDURE,
DEBUG CONNECT SESSION,
exp_full_database,
imp_full_database
TO xcj01;

转自<http://blog.itpub.net/4227/viewspace-68640/>

时间: 2024-08-10 08:10:41

给用户授予权限时应该尽量避免ANY系统权限的相关文章

跟用户沟通,问题尽量分析清楚,以及解决问题

分享一下上个星期,开发与跟用户沟通历程. 前提,以前旧系统,人事资料是一笔笔人手录入.现在公司在减少人手,提高效率.因此Insus.NET需要修改旧系统,实现批量导入. 下面一些截图来自邮件. 经用户使用之后,还有一些特殊情况是在开发时是没有想到的.当遇上下面的资料时,用户反馈: 原因是有旧系统内,存储雇员工号,只能存储整型.看到用户反馈的问题,我们会想到什么,怎样回用户的邮件?下面是Insus.NET的回复 从用户提供的数据.我们需要知道第位字母由什么来替代?替代规则是什么.这都是需要跟用户了

Oracle 用户、对象权限、系统权限

--================================ --Oracle 用户.对象权限.系统权限 --================================  一.用户与模式 用户:对数据库的访问,需要以适当用户身份通过验证,并具有相关权限来完成一系列动作 SYS用户,缺省始终创建,且未被锁定,拥有数据字典及其关联的所有对象 SYSTEM用户,缺省始终创建,且未被锁定,可以访问数据库内的所有对象 模式(schema):是某个用户拥有所有对象的集合.具有创建对象权限并创建

系统用户权限,系统权限位,用户相关命

1 如何让普通用户拥有root用户的能力 1.1 知道root密码,切换到root用户 ? su - root 1.2 修改文件目录数据权限 chmod 0=rwx -R /oldboy/oldboy1/ -R:递归修改目录权限,会修改目录下所有目录及文件的权限 1.3 普通用户提权 1.3.1 配置sudo文件 (1)visudo = vim etc/sudoers? ? ###推荐visudo,配置文件时会有语法检查功能root ALL=(ALL) ALL? ? 看需要添加权限①oldboy

以普通用户启动的Vim如何保存需要root权限的文件

在Linux上工作的朋友很可能遇到过这样一种情况,当你用Vim编辑完一个文件时,运行:wq保存退出,突然蹦出一个错误: E45: 'readonly' option is set (add ! to override) 这表明文件是只读的,按照提示,加上!强制保存::w!,结果又一个错误出现: "readonly-file-name" E212: Can't open file for writing 文件明明存在,为何提示无法打开?这错误又代表什么呢?查看文档:help E212:

Oracle创建用户并给用户授权查询指定表或视图的权限

MSV31账户登录数据库进行如下操作: CREATE USER NORTHBOUND IDENTIFIED BY NORTHBOUND  DEFAULT TABLESPACE "TBS_DNINMSV31"  TEMPORARY TABLESPACE "TEMP2"  QUOTA UNLIMITED ON "TBS_DNINMSV31"; GRANT "CONNECT" TO NORTHBOUND; ALTER USER NO

Oracle 用户、角色、权限(系统权限、对象权限)的数据字典表

1?三者的字典表 1.1?用户 select?*?from?dba_users; select?*?from?all_users; select?*?from?user_users; 1.2?角色 select?*?from?dba_roles; 1.3?权限 分为系统权限与对象权限: select?*?from?system_privilege_map; select?*?from?table_privilege_map; 2?三者之间关系的字典表 这类关系字典表的表名后缀都包含"_privs

Linux系统学习 十九、VSFTP服务—虚拟用户访问—为每个虚拟用户建立自己的配置文件,单独定义权限

为每个虚拟用户建立自己的配置文件,单独定义权限 可以给每个虚拟用户单独建立目录,并建立自己的配置文件.这样方便单独配置权限,并可以单独指定上传目录 1.修改配置文件 vi /etc/vsftpd/vsftpd.conf user_config_dir=/etc/vsftpd/vusers_dir    #指定保存虚拟用户配置文件的目录 2.建立目录 3.为每个虚拟用户建立配置文件 vi /etc/vsftpd/vusers_dir/cangls anon_upload_enable=YES an

drf框架 8 系统权限类使用 用户中心信息自查 token刷新机制 认证组件项目使用:多方式登录 权限组件项目使用:vip用户权限 频率组件 异常组件项目使用

系统权限类使用 图书接口:游客只读,用户可增删改查权限使用 from rest_framework.permissions import IsAuthenticatedOrReadOnly class BookViewSet(ModelViewSet): # 游客只读,用户可增删改查 permission_classes = [IsAuthenticatedOrReadOnly] queryset = models.Book.objects.all() serializer_class = se

CentOS 7下新建用户并设置为可提升为ROOT权限

第一步:添加用户 命令: #adduser tom    <!--此处以用户tom为例--> 第二步:修改密码 命令: #passwd tom 根据提示输入两次密码,完成密码设置. 第三步:设置用户权限 方法一:修改 /etc/sudoers 文件(推荐方法) 命令: #visudo    <!--找到下面一行,并在其后新增一行,如下所示:--> ## Allow root to run any commands anywhere    root    ALL=(ALL)