日期:2014-05-16  浏览次数:20336 次

oracle数据库权限总结

?? 今天我想就我最近学习oracle权限的笔记总结一下。

??? 数据库权限:

??? 数据库权限分为对象权限和系统权限

??? 对象权限:用户对其他用户的数据对象的操作权限。如select、update、insert、delete、all........

??? 系统权限:用户对数据库的权限,如create tables、create databases、create index、create plsql、登陆数据库,修改密码....

??? 系统权限里面呢又有角色的概念,什么叫角色呢?通俗的讲,就是权限的批量授权。如dba,resource等。角色又分自定义角色(自己定义角色,然后见权利赋予角色,再授权给用户)和预定义角色(存在数据库中的)。

??? 下面举例说明:

??? 首先系统权限

? 1.登陆到数据库,普通用户是没有权限创建用户的。首先以管理员的身份登陆:conn / as sysdba或者conn system/password;

? 2.创建用户:create user userName(用户名) identified by password(密码)

? 3.对用户解锁 alter userName account unlock

? 4.授权。刚创建的user是没有权限的。不能登录的。grant connect to userName(授予登录权限)

? 5.授予建表等权限。grant resource to userName

? 6.删除用户。drop user userName删除用户是如果你想删除该用户建的表的话,要加cascade。这样该用户的表也删除了。

? 7.收回权限。revoke create table(权限名) from userName(用户名)

对象权限:select update insert delete all等

? grant select tableName(表名) to userName(用户名)

? eg:grant select scott.emp to zhangsan这句话的意思是说将scott用户的表emp的select权限赋给张三。简单的说现在的张三可以查看scott的emp表。因为没有赋予其他权限。所以只能查看。

? 对象权限的收回:revoke select on emp(tableName) from zhangsan(userName)

?

? 权限的传递:

???? 对象权限传递:grant select on emp(tableName) to zhangsan(userName) grant with option;此时zhangsan可以将select权限传递给其他user。

???? 系统权限传递:grant connect to zhangsan with admin option;

???? 系统权限和对象权限传递的区别是:回收权限时系统权限回收会株连。对象权限不会。

???

?

?

?