97.Oracle数据库SQL开发之 用户特权和角色——系统特权
欢迎转载,转载请标明出处:http://blog.csdn.net/notbaron/article/details/50042815
系统特权允许用户在数据库中执行特定的操作,比如执行DDL语句。
常用的系统特权如下:
CREATE SESSION 连接到数据库
CREATE SEQUENCE 创建序列
CREATE SYNONYM 创建同名对象
CREATE TABLE 在用户模式中创建表
CREATE ANY TABLE 在任何模式中创建表
DROP TABLE 删除用户模式中的表
DROP ANY TABLE 删除任何模式中的表
CREATE PROCEDURE 创建存储过程
EXECUTE ANY PROCEDURE 执行任何模式中的存储过程
CREATE USER 创建用户
DROP USER 删除用户
CREATE VIEW 创建视图
1. 向用户授权系统特权
使用GRANT语句可以向用户授权系统特权。
例如:
GRANT CREATE SESSION,CREATE USER,CREATETABLE TO steve;
也可以使用WITH ADMIN OPTION选项,这样所授权的用户就可以把这种特权再授予其他用户。
一种搞特权授予PUBLIC,可以将该特权授予所有用户。
2. 检查授予用户的系统特权
查询用户的身份连接到数据库上的特权,如下:
store@PDB1> select * from user_sys_privs order byprivilege;
USERNAME
----------------------------------------------------------------------------------------------------
PRIVILEGE ADM COM
------------------------------------------- ---
STORE
UNLIMITED TABLESPACE NO NO
3. 使用系统特权
用户被授予系统特权之后,可以使用这种特权来执行特定的任务。
4. 撤销用户的系统特权
可以使用REVOKE语句撤销某个用户的系统特权。
如下:
CONNECTsystem/manager
REVOKE CREATETABLE FROM steve;
如果steve用户的权限授予了其他用户,其他用户还会保留这种特权。