陕西建设厅八大员报名官网/seo基础篇
今天同事突然问了个问题:“我是个普通用户,怎么看其他用户的权限”,我说当然不能了,那“那管理员怎么看”,我告诉他是dba_user_privs,突然发现我对权限突然很晕,索性仔细看了看联机文档。
联机文档7 Administering Users and Security 中率先谈到了权限 ,前面的介绍就不说了,先说说权限的分类,Administering Roles当中写到:
System privileges, object privileges, and roles provide a basic level of database security. They are designed to control user access to data and to limit the kinds of SQL statements that users can execute.
Oracle 把权限分为系统权限,对象权限和角色权限三种,刚开始学习oracle 时我也看到这句话,自以为理解了,但再次看到这句话时,发现有很多晕乎的地方。继续看,这三种权限定理了用户如何访问数据库,也就是对sql语句的使用限制。
下面列了一个表,对于三种权限的详细解释。
System Prinvlege 系统权限,是oracle定义的的一种权限,通常仅仅通过管理员授予,系统权限能够让用户定制自己的数据库。比如能够创建表,用户,会话这些权限;
Object Privilege 对象权限,定义是这种权限可以用来控制访问对象,例句是select On hr.employees to myuser 或者INSERT ON hr.employees TO myuser 。这里有个技巧,记住这个语句的方法,就是倒着念,如果正着念:查询权限在对象Hr.employees上授予myusers,念着比较费劲。外国人跟咱们说话都是反过来的(简单这么说),倒过来是,授予myuser在hr.employees上的查询权限,就比较顺了。
Role 角色, 一组权限或者一组角色 oracle创建后,会自动建立一些默认的角色,在联机文档中就有这些默认角色的定义:
Connect: 连接;这个角色有创建会话 create session的权限;
Resource: 这个怎么翻译,我不好说,它比connect高级点,联机文档说是extends the privileges of a user beyond those granted by the CONNECT
role.扩展了connect权限,resource可以创建存储过程,创建触发器和一些其他的系统权限;
DBA权限,基本上DBA权限就什么都可以干了
下面是什么是管理帐户,Administrative Accounts,比如sys,system。
SYS
SYS这个帐户很重要,创建数据库时就会自动让你创建,而且是有DBA角色的,我们知道,数据库中数据字典很重要,而数据字典里的表和视图都存储在这个帐户下,通常我们不再SYS帐户下建立任何其他的表,就好像不在windows的C盘上放文件,但不代表我们不能改些表和视图,比如一些参数文件。
SYSTEM
SYSTEM默认也是被创建的,就是一个DBA角色,主要是作为内部的一些表、视图与数据库工具的管理,权限比Sys要小,但也不要往里面存不是管理员的的表.
如果想创建数据库或者开关进程,至少得是sysdba或者sysoper的权限。这两种权限是游离于数据库打开的,意思就是,数据库没开时,你也拥有这些权限来做一些操作。这是很重要的。在排错的时候。
联机文档中还强调,我们可以把sysdba和sysoper作为一种可授予的权限来登陆,
比如本地登陆时,我们用 / as sysdba;
角色 ORLE
角色就是一组权限,这个比较好理解,比如你给创建一个角色叫销售,然后给销售这个角色一些权限,然后以后就不用挨个给每个销售用户授权了,直接把销售这个角色授予给销售部的员工就行了。角色通常用在应用程序上。
10.2的联机文档时用em来描述如何创建角色的,其实很简单,就一个语句,没密码的话,直接create role rolename
转载于:https://blog.51cto.com/421776/817948