知识点的梳理:
-
sql语句针对权限的控制提供了两个操作命令:GRANT(授权)与REVOKE(回收权限);
-
说明
-
用户创建完成后是没有权限的,所以无法使用,要为此用户授权。Oracle的权限分为两种:
- 系统权限:数据库资源操作的权限,例如:创建数据表,索引等权限;
- 对象权限:维护数据库中对象的能力,即:由一个用户操作另外一个用户的对象;
- 所有权限应由DBA进行控制
-
-
系统权限
- 该权限是资源操作权限,应由DBA统一分配;
- 为用户授权语法:
grant 权限,.... |
权限:主要指的是各个系统权限; |
- 示例:为c##mldnuser用户授予CREATE SESSION权限
GRANT CREATE SESSION TO c##mldnuser ; |
此用户被授权后,可以进行登录; |
注意:每个连接到数据库上的用户都通过一个session进行表示,如果某个用户缺少了创建session的权限,就无法登录。在无授权下进行登录,就会出现:"ORA-01045:user xxxxx lacks create session privilege;logon denied"的错误提示信息; |
- 示例:为c##mldnuser用户授权
GRANT CREATE TABLE , CREATE SEQUENCE , CREATE VIEW TO c##mldnuser WITH ADMIN OPTION ; |
此sql将三种权限授予c##mldnuser,同时WITH ADMIN OPTION子句,表示c##mldnuser用户可以将其权限授予其他用户 |
- 示例:利用c##mldnuser用户登录,而后将创建表、以及创建序列的权限授予c##mldnjava用户
GRANT CREATE TABLE , CREATE SEQUENCE TO c##mldnjava ; |
- 示例:通过dba_sys_privs数据字典查看用户权限
SELECT * FROM dba_sys_privs |