权限
系统权限
允许用户执行特定的系统级操作或在特定的对象上执行特定的操作
常见的系统权限:
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
;