oracle学习总结---------角色和权限管理
2017-01-18 20:45
246 查看
|---系统权限:指对数据库管理的操作以及数据对象的操作(创建,删除,修改)oracle提供了166种系统权限
显示系统权限的sql语句:
select * from system_privilege_map order by name;
分配权限/角色:(必须是管理员)
---grant 权限名 to 用户名;
---权限: connect,resource,dba,select on 表名, insert on 表名
撤销权限/角色:
-----revoke 权限名字 from 用户名
?实例:
(1)创建一个用户kan
create user kan identified by m123;
(2)给kan赋予Create Session 权限
grant Create session to kan with admin option;
---【with admin option】可以将权限负责给其他用户
(3)回收权限,权限回收不是级联回收
revoke Create session from kan;
|---对象权限:对数据对象的操作,授予对象权限是有对象的所有者来完成的,如果用其他的用户来操作,则需要用户具有相应的(with grant option)权限,sys和system可以将任何对象的对象权限授予其他用户,授予是用grant命令来完成的。
显示对象权限的sql语句
select distinct privilege from dba_tab_privs
|---授予权限的基本语法:
grant 对象权限 on 数据对象 to 用户名【角色】 [with grant option]
注解:[with grant option]//可以将对象权限授权于其他用户
|---回收对象权限基本语法:
revoke 对象权限 on 数据对象 from 用户名【角色】
注解:回收对象权限是级联操作
?实例:
(1)kan用户操作scott.emp表,则必须为kan对象赋予对象权限
grant select on emp to kan with grant option;
select * from scott.emp ;
(2)kan可以修改scott.emp表
grant update on emp to kan with grant option;
(3)kan用户可以操作scott.emp;
grant update on emp to kan with grant option;
(4)回收kan用户的所有对象权限
revoke all on emp from kan;
2、角色: 角色分为预定义角色和自定义角色,角色的本质是多个权限的集合,简化对权限的管理。角色可以包括系统权限,也可以包含对象权限。
?:显示角色拥有的权限:
select * from dba_sys_privs where grantee = 'CONNECT';
注意:在查询的时候,角色名一定要大写
|---预定义角色
预定义角色是指oracle所提供的角色,每种角色都用于执行一些特定的管理任务。预定义角色在oracle中一个用33种
?注解:查看用户具有什么角色:
select * from dba_role_privs where grantee ='AAA'; //用户名要大写
(1)connect角色:用户系统权限:Create Session主要用于为授权用户登录数据库。
(2)dba角色,dba角色具有所有系统的权,及with admin option选项,默认的dba用户为sys和ssytem,他们可以将任何的系统权限授予其他用户,但是要注意dba角色不具有启动和关闭数据库
|---自定义角色
(1)创建角色(不验证)
如果创建的角色是公用的角色,可以采用不验证的方式建立角色
--语法:
create role 角色名 not identified;
(2)创建角色(数据库验证)
采用这样的方式时,角色名、口令存放在数据库中,当激活该角色时,必须提供口令,在创建这种角色时,需要提供口令
create role 角色名 identified by 用户名;
|---删除角色:
drop role 角色名。
显示系统权限的sql语句:
select * from system_privilege_map order by name;
分配权限/角色:(必须是管理员)
---grant 权限名 to 用户名;
---权限: connect,resource,dba,select on 表名, insert on 表名
撤销权限/角色:
-----revoke 权限名字 from 用户名
?实例:
(1)创建一个用户kan
create user kan identified by m123;
(2)给kan赋予Create Session 权限
grant Create session to kan with admin option;
---【with admin option】可以将权限负责给其他用户
(3)回收权限,权限回收不是级联回收
revoke Create session from kan;
|---对象权限:对数据对象的操作,授予对象权限是有对象的所有者来完成的,如果用其他的用户来操作,则需要用户具有相应的(with grant option)权限,sys和system可以将任何对象的对象权限授予其他用户,授予是用grant命令来完成的。
显示对象权限的sql语句
select distinct privilege from dba_tab_privs
|---授予权限的基本语法:
grant 对象权限 on 数据对象 to 用户名【角色】 [with grant option]
注解:[with grant option]//可以将对象权限授权于其他用户
|---回收对象权限基本语法:
revoke 对象权限 on 数据对象 from 用户名【角色】
注解:回收对象权限是级联操作
?实例:
(1)kan用户操作scott.emp表,则必须为kan对象赋予对象权限
grant select on emp to kan with grant option;
select * from scott.emp ;
(2)kan可以修改scott.emp表
grant update on emp to kan with grant option;
(3)kan用户可以操作scott.emp;
grant update on emp to kan with grant option;
(4)回收kan用户的所有对象权限
revoke all on emp from kan;
2、角色: 角色分为预定义角色和自定义角色,角色的本质是多个权限的集合,简化对权限的管理。角色可以包括系统权限,也可以包含对象权限。
?:显示角色拥有的权限:
select * from dba_sys_privs where grantee = 'CONNECT';
注意:在查询的时候,角色名一定要大写
|---预定义角色
预定义角色是指oracle所提供的角色,每种角色都用于执行一些特定的管理任务。预定义角色在oracle中一个用33种
?注解:查看用户具有什么角色:
select * from dba_role_privs where grantee ='AAA'; //用户名要大写
(1)connect角色:用户系统权限:Create Session主要用于为授权用户登录数据库。
(2)dba角色,dba角色具有所有系统的权,及with admin option选项,默认的dba用户为sys和ssytem,他们可以将任何的系统权限授予其他用户,但是要注意dba角色不具有启动和关闭数据库
|---自定义角色
(1)创建角色(不验证)
如果创建的角色是公用的角色,可以采用不验证的方式建立角色
--语法:
create role 角色名 not identified;
(2)创建角色(数据库验证)
采用这样的方式时,角色名、口令存放在数据库中,当激活该角色时,必须提供口令,在创建这种角色时,需要提供口令
create role 角色名 identified by 用户名;
|---删除角色:
drop role 角色名。
相关文章推荐
- JVM虚拟机内存及垃圾收集
- 基于 Red Hat 的发行版 Oracle Linux 正式发布Oracle Linux 7.1
- Oracle Containers for J2EE远程安全漏洞(CVE-2014-0413)
- Oracle 10g R2不能使用EM的问题
- 表空间操作
- PreparedStatement中in子句的处理
- VMware下RedHat4.8_64位安装Oracle 10g RAC--简略脚本
- oracle sql日期比较
- 基于 Red Hat 的发行版 Oracle Linux 正式发布Oracle Linux 7.1
- OS block size和Oracle block size,查找OS Blocksize的方法
- oracle中创建数据库和表空间的几点总结
- 数据库自动备份脚本
- oracle的nvl函数的使用介绍
- 解决oracle用户连接失败的解决方法
- oracle的一些tips技巧
- Oracle 下的开发日积月累
- Oracle存储过程之数据库中获取数据实例
- Windows下ORACLE 10g完全卸载的方法分析