执行时:
SELECT grantee,owner,table_name,grantor, privilege, grantable
FROM user_tabs_privs;
|**Grantee | Owner| Table_Name| Grantor |Privilege| Grantable**|
|----------|---------|------------|---------|---------|------------|
|MEGAN |EMILY |SALES | ADAM |SELECT |NO |
|----------|---------|------------|---------|---------|------------|
|JO |EMILY |EMP | EMILY |DELETE |NO |
|----------|---------|------------|---------|---------|------------|
|ADAM |EMILY |SALES | EMILY |SELECT |YES |
|----------|---------|------------|---------|---------|------------|
从表的一行中,您可以检索语句:
作为用户grantor
问题
GRANT privilege ON owner.table_name TO grantee;
如果grantable
为"否"。
GRANT privilege ON owner.table_name TO grantee WITH GRANT OPTION;
如果grantable
为"是"。
但人们不知道当时发表了一份声明。
用户可以授予对象的权限,owner.table_name他是对象的所有者 - 如果该权限是通过授予选项授予他的,则用户也可以授予对对象的权限。
由此得出以下可能的语句序列。
--as user Emily
GRANT select ON emily.sales TO adam WITH GRANT OPTION;
GRANT delete ON emily.sales TO jo;
-- as user adam
GRANT select ON emily.sales TO megan;
这些表授权的语法很简单:
GRANT privilege ON table TO user (WITH GRANT OPTION)
例如,对于底部记录,Emily授予Adam在销售表上的SELECT权限,WITH GRANT OPTION
(这样他就可以将其授予其他人,就像他在第一张记录中所做的那样):
GRANT SELECT ON Sales TO Adam WITH GRANT OPTION