Oracle12C--权限管理(二十一)
2017-04-24 09:28
204 查看
知识点的梳理:
sql语句针对权限的控制提供了两个操作命令:GRANT(授权)与REVOKE(回收权限);
说明
用户创建完成后是没有权限的,所以无法使用,要为此用户授权。Oracle的权限分为两种:
系统权限:数据库资源操作的权限,例如:创建数据表,索引等权限;
对象权限:维护数据库中对象的能力,即:由一个用户操作另外一个用户的对象;
所有权限应由DBA进行控制
系统权限
该权限是资源操作权限,应由DBA统一分配;
为用户授权语法:
示例:为c##mldnuser用户授予CREATE SESSION权限
示例:为c##mldnuser用户授权
示例:利用c##mldnuser用户登录,而后将创建表、以及创建序列的权限授予c##mldnjava用户
示例:通过dba_sys_privs数据字典查看用户权限
撤销权限:
语法:revoke
权限,.... from 用户名;<
4000
/span>
示例:将c##mldnuser用户的CREATE VIEW、CREATE TABLE权限回收
如果一个用户的权限,是通过其他用户指定的,则可以由其他用户回收该用户的权限
示例:上面的示例中,c##mldnuser将权限指定给了c##mldnjava,现在通过c##mldnuser用户回收c##mldnjava用户的CREATE SEQUENCE权限
对象权限
对象权限用于赋予用户访问其他用户数据表的权利;
语法:授予对象权限
Oracle定义了8种对象权限
示例:为c##mldnuser用户授予c##scott用户dept表的查询以及增加权限
示例:将c##scott.dept数据表更新部门名称(dname)的权限授予c##mldnuser用户
示例:查询当前登录用户下的所有对象权限
示例:通过"user_col_privs_recd"数据字典,查询当前用户所具备的列的对象权限
示例:可以通过user_tab_privs_made和user_col_privs_made数据字典查看某一个数据库对象分配出去了哪些权限;
回收对象权限
语法:
示例:回收c##scott.dept上的相关权限
注意:只能按照对象权限回收,不能按照列权限回收
在授权时可以有这样的方式,update(dname);但在回收权限时,这种方式无效,只能以整个表的权限方式回收;
回收时使用此语法,会提示错误:"ORA-01750:UPDATE/REFERENCES只能从整个表而不能按列REVOKE";
sysoper和sysdba权限
用户使用conn进行连接时,可以通过as设置sysdoper或sysdba,它们分别对应两种不同的权限:
sysoper系统权限:
执行startup和shutdown操作;
执行alter datebase open|mount|backup;
archivelog和recovery;
create spfile;
restricted session权限;
sysdba系统权限:
create database;
alter tablespace begin/end backup;
recover database until;
sql语句针对权限的控制提供了两个操作命令:GRANT(授权)与REVOKE(回收权限);
说明
用户创建完成后是没有权限的,所以无法使用,要为此用户授权。Oracle的权限分为两种:
系统权限:数据库资源操作的权限,例如:创建数据表,索引等权限;
对象权限:维护数据库中对象的能力,即:由一个用户操作另外一个用户的对象;
所有权限应由DBA进行控制
系统权限
该权限是资源操作权限,应由DBA统一分配;
为用户授权语法:
grant 权限,.... to [用户名,....|角色,....|public] [with admin option]; | 权限:主要指的是各个系统权限; to:设置授予权限的用户,角色或者是使用public将此权限设置为公共权限; with admin option:将用户授予的权限继续授予其他用户 |
GRANT CREATE SESSION TO c##mldnuser ; |
此用户被授权后,可以进行登录; |
注意:每个连接到数据库上的用户都通过一个session进行表示,如果某个用户缺少了创建session的权限,就无法登录。在无授权下进行登录,就会出现:"ORA-01045:user xxxxx lacks create session privilege;logon denied"的错误提示信息; |
GRANT CREATE TABLE , CREATE SEQUENCE , CREATE VIEW TO c##mldnuser WITH ADMIN OPTION ; |
此sql将三种权限授予c##mldnuser,同时WITH ADMIN OPTION子句,表示c##mldnuser用户可以将其权限授予其他用户 |
GRANT CREATE TABLE , CREATE SEQUENCE TO c##mldnjava ; |
SELECT * FROM dba_sys_privs WHERE grantee IN ('C##MLDNJAVA' , 'C##MLDNUSER') ORDER BY grantee DESC ; |
语法:revoke
权限,.... from 用户名;<
4000
/span>
示例:将c##mldnuser用户的CREATE VIEW、CREATE TABLE权限回收
REVOKE CREATE TABLE , CREATE VIEW FROM c##mldnuser ; |
示例:上面的示例中,c##mldnuser将权限指定给了c##mldnjava,现在通过c##mldnuser用户回收c##mldnjava用户的CREATE SEQUENCE权限
REVOKE CREATE SEQUENCE FROM c##mldnjava ; |
对象权限用于赋予用户访问其他用户数据表的权利;
语法:授予对象权限
grant 对象 |all [(列,...)] on 对象 to [用户名|角色名|public] [with grant option]; | 本语法解析: 对象权限:下表的权限标记,如果设置为all表示具有所有对象权限; on:要授予权限的对象名称: to:将此权限授予的用户名称或角色名称,如果设置为public表示为公共权限; with grant option:允许授权用户继续授权其他用户; |
No. | 对象权限 | 表(table) | 序列(Sequence) | 视图(view) | 子程序(Procedure) |
1 | 查询(select) | √ | √ | √ | |
2 | 增加(insert) | √ | | √ | |
3 | 更新(update) | √ | | √ | |
4 | 删除(delete) | √ | | √ | |
5 | 执行(execute) | | | | √ |
6 | 修改(alter) | √ | √ | √ | |
7 | 索引(index) | √ | | √ | |
8 | 关联(references) | √ | | | |
GRANT SELECT , INSERT ON c##scott.dept TO c##mldnuser ; |
此时c##mldnuse具备了查询和插入 c##scott下的dept表的能力 |
GRANT UPDATE(dname) ON c##scott.dept TO c##mldnuser ; |
此sql只允许c##mldnuser更新c##scott.dept表的dname字段,其他字段均没有权限 |
CONN c##mldnuser/hellojava COL owner FOR A10 ; COL table_name FOR A10 ; COL grantor FOR A10 ; COL privilege FOR A10 ; SELECT * FROM user_tab_privs_recd ; |
COL owner FOR A10 ; COL table_name FOR A10 ; COL column_name FOR A15 ; COL grantor FOR A10 ; COL privilege FOR A10 ; SELECT * FROM user_col_privs_recd ; |
回收对象权限
语法:
revoke [权限,...|all] on 对象 from [用户,...|角色|public] |
REVOKE SELECT , INSERT ON c##scott.dept FROM c##mldnuser ; REVOKE UPDATE ON c##scott.dept FROM c##mldnuser ; |
在授权时可以有这样的方式,update(dname);但在回收权限时,这种方式无效,只能以整个表的权限方式回收;
回收时使用此语法,会提示错误:"ORA-01750:UPDATE/REFERENCES只能从整个表而不能按列REVOKE";
sysoper和sysdba权限
用户使用conn进行连接时,可以通过as设置sysdoper或sysdba,它们分别对应两种不同的权限:
sysoper系统权限:
执行startup和shutdown操作;
执行alter datebase open|mount|backup;
archivelog和recovery;
create spfile;
restricted session权限;
sysdba系统权限:
create database;
alter tablespace begin/end backup;
recover database until;
相关文章推荐
- Oracle12C--权限管理(二十一)
- Oracle12C--权限管理(二十一)
- Oracle12C--权限管理(二十一)
- Oracle12C--权限管理(二十一)
- Oracle12C--权限管理(二十一)
- Oracle12C--权限管理(二十一)
- Oracle12C--权限管理(二十一)
- Oracle12C--权限管理(二十一)
- Oracle12C--权限管理(二十一)
- Oracle12C--权限管理(二十一)
- Oracle12C--权限管理(二十一)
- Oracle12C--权限管理(二十一)
- Oracle12C--权限管理(二十一)
- Oracle12C--权限管理(二十一)
- MySQL知识(二十一)——用户管理之权限管理、访问控制
- Spring Boot + Spring Cloud 实现权限管理系统 后端篇(二十一):服务网关(Zuul)
- ASP.NET MVC+EF框架+EasyUI实现权限管理系列(3)-面向接口的编程
- 数据库用户权限管理(一)
- webcast(Microsoft Office sharepoint用户权限管理和个性化功能)学习笔记
- ASP.NET MVC+EF框架+EasyUI实现权限管理系列(19)-用户信息的修改和浏览