Oracle 系统权限和对象权限管理

1. 查询Oracle所有系统权限
select * from system_privilege_map 

2. 查询Oracle所有对象权限
select * from table_privilege_map 

3.将'授予系统权限'这个权限给某用户--当然一般采用 dba 给其他用户授予“其他权限”,这个权限一般不需要给别人
grant any privilege to TestUser 【with admin option】//表示 TestUser 用户有权利 给其他用户授予 系统权限 。后面 表示对这个权限的维护(能否再授予其他用户) 

4.举例: 授予系统权限 create session (连接数据库的关键权限,connect角色中有这个权限, oracle角色 文章中有介绍)
1.grant create session to TestUser //TestUser就可以连接数据库了
2.grant create session to TestUser with option admin //TestUser就可以连接数据库了,并且 可以 将这个权限 给其他用户

5.收回 系统权限 不会级联回收
 revoke create session from TestUser

6. 关于 系统权限 的维护
with admin option //表示继承后可以 授予其他用户

7. 关于 对象权限 的维护
with grant option //表示继承后可以 授予其他用户

8.举例: 授予对象权限 update,select,insert,delete,all [4种等于 all]
grant select on scott.emp to TestUser 【with grant option】 //表示给TestUser 授予scott.emp的查询权限
grant all on scott.emp to TestUser //表示给TestUser 授予scott.emp的select,update,insert,delete 权限

9.举例: 授予 某几列 对象权限
grant update on scott.emp(sal) to luob //指定修改某列
grant select on emp(ename,sal) to luob //只能查询这指定字段

10.举例:授予 alter 权限
grant alter on scott.emp to luob //授予这个表结构的修改权限

11.举例:授予 execute 权限 (用于用户执行其他方案的包、过程,函数)
grant execute on dbms_transaction to luob; --执行 dbms_transaction 包的权限

12.举例:授予 index 权限
 grant index on scott.emp to luob 【with grant option】 //授予创建索引的权限

13.收回 对象权限 【cascade】会级联回收
 revoke select on scott.emp from TestUser【cascade】//撤销查询权限或者级联撤销

14.举例:级联回收的
grant select on emp to luobing with grant option; //授予权限 并维护
conn luobin/m123@ORACLE; //登录后 给 xiaoming 权限
grant select on emp to xiaoming;
conn scott/tiger@ORACLE //scott 撤销 luobing的权限
revoke select on emp from luobing cascade
conn xiaoming/m123@ORACLE;
select * from scott.emp; //表和视图不存在

15.查询当前用户具有的系统权限
select * from dba_sys_privs where grantee='SYSTEM'

16.查询当前用户具有的对象权限
select * from dba_tab_privs where grantee='SYSTEM';

17.查询当前用户具有的列权限
select * from dba_col_privs where grantee='SYSTEM';

18.查询用户 SCOTT 所拥有的系统权限
select * from dba_sys_privs where grantee in (select granted_role from dba_role_privs where grantee='SCOTT');

19.数据库管理员 DBA的一些职责
1.安装和升级 oracle 数据库
2.建库建表建空间 视图,索引。。。。
3.指定和并实施 备份和恢复计划
4.数据库权限管理,调优,故障排除
5.对高级的dba,要求能参加项目开发,会编写sql语句 ,存储过程,触发器,规则,约束,包
6.管理员 还有管理初始化参数
     show  parameter; 有 200多参数 有参数可以配置的
7.管理数据库的用户主要是 sys (董事长)> 和system  (总经理)

20.sys,sysdba,sysoper的区别
sys:拥有oracle的基表和视图,拥有 dba 数据库管理
sysdba:系统管理员
sysoper:系统操作员  的角色和权限
system:主要存储次一级的数据 如:oracle的特性和工具的管理信息和 
dba,sysdba 角色权限 区别   
1.存储的数据重要性不一样 ,权限不一样 
2.sys 必须 利用 as sysdba 或者 as sysoper 不能用normal(标准)方式登录
3.system 默认登录角色是  dba   (conn system/manager)
4.如果用  conn system/manager as sysdba  登录结果和 sys 登录一样

21. sysdba 和 sysoper的权限区别
权限 sysdba sysoper
能够 Startup/Shutdown 启动/关闭数据库 y y
alter database open/mount/backup(设置数据库不同的状态) y y
改变字符集 y n
采用 create/drop database(创建/删除数据库) y n
create spfile y y
alter database archivelog(归档日志) y y
alter database recover(完全和部分恢复数据库) y 只能完全恢复,不能执行部分恢复
拥有 restricted session(会话限制)权限 y y
可以让用户作为sys 用户连接 y y
登录之后 sys public

猜你喜欢

转载自takeme.iteye.com/blog/1620341
今日推荐