权限

系统权限

允许用户执行特定的系统级操作或在特定的对象上执行特定的操作

常见的系统权限:

CREATE TABLESPACE  //创建表空间
CREATE TABLE	   //创建表
CREATE USER			// 创建用户
CREATE ROLE			// 创建角色
CREATE ROLLBACK SEGMENT //创建undo段
INSERT ANY TABLE   // 插入记录到任意表
DROP TABLE		   // 删除表
DROP USER			// 删除用户
DROP ROLE			// 删除角色
DROP TABLESPACE    // 删除表空间
DROP ROLLBACK SEGMENT //删除undo段
对象权限

允许用户对数据库对象进行特定的操作,如对某个具体的表进行增删改查

ALTER 	: 修改对象定义
DELETE	:删除对象数据
INDEX	:创建对象索引
INSERT	:插入数据
SELECT	:查询对象
UPDATE	:更新对象
EXECUTE	:执行某操作
READ	:读取文件
WRITE	:写入文件
列访问权限

限定用户只能在表的某列进行增删改查或引用某些列的值

授予权限:

GRANT 
privilege|role |ALL		// 权限或角色或当前用户的所有权限
[column_list]			//在授予对象权限时,指定对象的某些列来授予
[ON object_name]		//在授予对象权限时指定对象
TO 
user_name |role_name|PUBLIC //PUBLIC表示授予给所有用户
[WITH ADMIN OPTION]		//表示可以转授,系统权限回收时不级联,对象权限回收时可级联
;

回收权限:

REVOKE 
privilege|role |ALL
[ON object_name]
FROM 
user_name|role_name|PUBLIC
[CASCADE CONSTRAINTS]	//回收对象权限时使用,可产生级联效应
;

查看权限:
用户查看自己获得的系统权限:查询用户视图:user_sys_privs
sys用户查看授予用户的系统权限:查询视图 :dba_sys_privs

SELECT
*
FROM
[USER_SYS_PRIVS | DBA_SYS_PRIVS] //用户视图或系统视图
;

用户

创建用户 :
一般只有sys用户或被授权的普通用户才可有创建用户的权限,刚创建的用户没有任何权限。

CREATE USER
user_name
[IDENTIFIED [BY password | EXTERNALLY]]  //指定口令或让外部系统验证用户的身份
[DEFAULT TABLESPACE tbs_name]			//指定存放数据的默认表空间
[TEMPORARY TABLESPACE tbs_name]			//指定临时表空间
[PASSWORD EXPIRE]						//用户创建完后口令立即失效
[ACCOUNT {LOCK | UNLOCK]				//用户是否锁定
;

修改用户:

ALTER USER
user_name
[IDENTIFIED [BY password | EXTERNALLY]]
...	// 与创建用户的语句相同
[ACCOUNT {LOCK | UNLOCK]
;

删除用户:

DROP USER user_name;

角色

一组相关权限的集合,与用户是多对多的关系

创建角色:

CREATE ROLE
role_name
[NOT IDENTIFIED] | [IDENTIFIED [BY password | EXTERNALLY]]
;

修改角色

ALTER ROLE
role_name
[NOT IDENTIFIED] | [IDENTIFIED [BY password | EXTERNALLY]]
;

删除角色:

DROP ROLE
role_name
;

同义词

对象的别名,隐藏了对象的真名,当对同义词进行删除时,对应的对象不会被破坏

创建同义词:

CREATE 
[PUBLIC]	//定义该同义词是否对所有用户可用
SYNONYM
synonym_name
FOR
object_name
;

删除同义词

DROP SYNONYM
synonym_name
;