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

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

你可能感兴趣的:(Oracle 系统权限和对象权限管理)