开篇:–什么是权限?:定义可以执行的操作
Oracle的权限系统主要分为两大块:
-
系统权限(粗粒度):登录权限(create session)、创建表权限(create table)、使用表空间权限(unlimited tablespace)、查看任意表权限(select any table)等;
-
对象权限(细粒度):控制指定用户只能查看某一张表、只能修改某一张表中的某一个字段等;
一、系统权限:
1、给某个用户授予系统权限(此类授权工作必须由超级管理员账号完成):grant 系统权限名 to 用户名 [with admin option]
——在授予系统权限时,如果后面追加“with admin option”,代表此权限可以传递给其他用户:
CREATE USER zhangsan IDENTIFIED by 123; GRANT CREATE SESSION to zhangsan; CREATE USER lisi IDENTIFIED by 123;
可以看到,被授予了“CREATE SESSION”登录权限的zhangsan就可以正常登录Oracle系统,而lisi就不可以正常登录;
2、回收指定用户的系统权限:revoke 系统权限名 from 用户名
REVOKE CREATE SESSION FROM zhangsan;
此时,在尝试去连接zhangsan,发现zhangsan已经没有登录的权限了
3、查看指定账户下,拥有哪些权限:
SELECT * FROM user_sys_privs;
4、给shangsan授予登陆权限,后面追加[with admin option],然后由zhangsan将登录全新传递给lisi:
GRANT CREATE SESSION TO zhangsan WITH admin OPTION;
然后使用zhangsan用户登录系统,将权限传递给lisi:
grant create session to lisi
可以看到zhangsan已经顺利地将登录系统的权限传递给了lisi,而且自己权限依然保留,现在shangsan和lisi都可以登录系统了;
2 Comments
哎呀太好看了博主多多更新啊
额地马,欢迎大牛光顾