一。权限
权限最大的用户是:
sysdba和sysoper
1.创建用户:
create user zhangsan identified by mima;
创建完的用户没有任何权限,包括登录的权限都没有。
2.用户授权
grant create tablespace,connect to zhangsan;
3.一个开发者需要的权限:
创建会话:grant create session to 用户名;
创建表:grant create table to 用户名;
创建视图:
创建序列:
创建过程:
4.dba给用户修改密码:
alter user scott identified by tiger;
5.对象权限:
对象权限 | 表 | 视图 | 序列 | 存储过程 |
---|---|---|---|---|
alter | √ | √ | ||
delete | √ | √ | ||
execute | √ | |||
index | √ | |||
insert | √ | √ | ||
references | √ | |||
select | √ | √ | √ | |
update | √ | √ |
6.授予对象权限
①授予在emp表上进行查询的权限:
grant select
on emp
to sue,rich;
②为用户和角色授予dept表上的某些列的修改权限:
grant update(dname, loc)
on dept
to jack,john;
③with grant option:
被授权的用户还能把权限给其他人。
grant insert, select
on dept
to tom
with grant option;
④to public :
允许系统中所有用户访问Alice的dept表:
grant select
on alice.dept
to public;
7.回收对象权限
revoke select, insert
on dept
from scott;
注意:
假设Scott把权限给了A,A把权限给了B,那么Scott只能收回A的权限,而不能收回B的权限。
如果Scott收回了A的权限,相应的B的权限也不存在了。
8.验证授权情况
数据字典表 | 描述 |
---|---|
role_sys_privs | 授予角色的系统权限 |
role_tab_privs | 授予角色的表权限 |
user_role_privs | 用户能存取的角色 |
user_tab_privs_made | 在用户对象上所授予的系统权限情况 |
user_tab_privs_recd | 授权给用户的对象权限 |
user_col_privs_made | 在用户对象的列上所授予的对象权限情况 |
user_col_privs_recd | 授予对象的某些列的对象权限情况 |
二。角色
Oracle用角色来简化对权限的管理。
1.创建角色:
create role manage;
2.给角色授权:
grant create table,create view to manage;
3.授予开发者的角色:
grant connect, resource to 开发者;
其中,connect和resource是dba默认的角色。