一、概述
权限的分类:
系统权限: 对于数据库的权限
对象权限: 操作数据库对象的权限
基本上,权限的控制和之前介绍的管理控制台是相通的,所以基本可以大概将此节看作图形化操作的SQL语句操作版本
二、用户管理
1.创建用户
DBA使用以下语法创建:
CREATE USER user
IDENTIFIED BY password;
// 普通用户可以使用ALTER USER进行自己的密码修改
切换成SYSTEM用户,创建示例如下:
CREATE USER cc01
IDENTIFIED BY c123456789
当然,这个用户通过命令行创建是不能登录的,没有CREATE SESSION权限,接下来介绍常用的权限管理:
2.用户权限管理
GRANT privilege [, privilege...]
TO user [, user| role, PUBLIC...];
一般常用开发者需要的权限如下:(完整权限也可以通过管理控制台查看了解)
示例:
GRANT CREATE SESSION,CREATE TABLE
TO cc01
这样,用户就有权限创建表了,不过由于默认没有给表空间,还需要给予表空间才能成功建表
3.创建用户表空间
ALTER USER atguigu01 QUOTA UNLIMITED
ON users
示例:
ALTER USER atguigu01 QUOTA 5M ON users
三、角色管理
1.角色是什么
角色是对一部分权限的封装,使用图示如下:
2.创建角色
CREATE ROLE manager
给角色赋予权限:
GRANT CREATE SESSION,CREATE TABLE
TO manager
给用户授予角色:
GRANT manager TO cc01
四、对象管理
对象权限概述(对象就是之前介绍的数据库对象)
不同的对象具有不同的对象权限
对象的拥有者拥有所有权限
对象的拥有者可以向外分配权限
授予对象权限
GRANT object_priv [(columns)]
ON object
TO {user|role|PUBLIC}
[WITH GRANT OPTION];
WITH GRANT OPTION 使用户同样具有分配权限的权利(对应管理控制台中管理选项的勾与叉)
示例:
GRANT select
ON employees
TO sue, rich;
这样就可以在别的角色进行查询操作了:
SELECT * FROM SCOTT.employees
查询权限分配情况
使用这些视图的示例:
SELECT * FROM USER_SYS_PRIVS;
收回权限
REVOKE {privilege [, privilege...]|ALL}
ON object
FROM {user[, user...]|role|PUBLIC}
[CASCADE CONSTRAINTS];
示例:
REVOKE select, insert
ON departments
FROM scott;
小结: