98.Oracle数据库SQL开发之 用户特权和角色——对象特权
欢迎转载,转载请标明出处:http://blog.csdn.net/notbaron/article/details/50042839
对象特权允许用户对数据库对象执行特定的操作,例如对表执行DML语句。
常用的对象特权:
SELECT
INSERT
UPDATE
DELETE
EXECUTE
1. 向用户授予对象特权
可以使用GRANT语句向用户授予对象特权。
语法类型授予系统特权。
如下:
store@PDB1> grant select,insert on store.productsto steve;
Grant succeeded.
所授权的用户可以把这种特权再授予其他用户,使用WITH GRANT OPTION选项。
授权用户将系统特权授予其他用户时,使用ADMIN选项。
2. 检查已授权的对象特权
通过查询user_tab_privs_made可以检查某个用户对哪些表向其他用户开放了哪些对象特权:
例如:
store@PDB1> select * from user_tab_privs_madewhere table_name='PRODUCTS';
GRANTEE
----------------------------------------------------------------------------------------------------
TABLE_NAME
----------------------------------------------------------------------------------------------------
GRANTOR
----------------------------------------------------------------------------------------------------
PRIVILEGE GRA HIE COM TYPE
------------------------------------------- --- --- ------------------------
STEVE
PRODUCTS
STORE
SELECT NO NO NO TABLE
STEVE
PRODUCTS
STORE
INSERT NO NO NO TABLE
3. 检查已接受的对象特权
通过查询user_tab_privs_recd表可以检查某个用户被授予了哪些表上的哪些对象特权。
store@PDB1>select * from user_tab_privs_recd order by privilege;
no rows selected
通过查询user_col_privs_recd可以检查某个用户被授予了哪些列的对象特权。
store@PDB1> select * from user_col_privs_recd;
no rows selected
4. 使用对象特权
用户被授予对象特权之后,就可以使用这种特权来执行特定的任务。
5. 同名对象
同名对象时用CREATE SYNONYM语句创建的。
例如:
CREATE SYNONYMcustomers for store.customers;
自行如下:
SELECT * FORMCUSTOMRES;
6. 公共同名对象
创建公共同名对象之后,所有的用户都可以看到这个同名对象。
例如:
CREATE PUBLIC SYNONYM products forstore.products;
可以通过公共同名对象products对store.products进行检索。
7. 撤销用户的对象特权
可以使用REVOKE语句撤销某个用户的对象特权。
例如:
REVOKE INSERT ONproducts from steve;