日期:2014-05-16 浏览次数:20372 次
?? 今天我想就我最近学习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;
???? 系统权限和对象权限传递的区别是:回收权限时系统权限回收会株连。对象权限不会。
???
?
?
?