oracle 将发出哪些SQL语句来使这些赠款存在于字典中,以及针对每个语句执行了哪些用户?

bnl4lu3b  于 2023-03-17  发布在  Oracle
关注(0)|答案(2)|浏览(89)

执行时:

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         |
|----------|---------|------------|---------|---------|------------|
vybvopom

vybvopom1#

从表中的一行可以检索语句:
作为用户grantor发出

GRANT privilege ON owner.table_name TO grantee;

如果grantable为“否”。

GRANT privilege ON owner.table_name TO grantee WITH GRANT OPTION;

如果grantable为“是”。
但人们不知道当时发表了一份声明。
用户可以授予对象所有者的权限。table_name(如果他是对象的所有者)-此外,用户还可以授予对象的权限(如果该权限是使用grant选项授予的)。
由此,以下是可能的声明顺序。

--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;
rdlzhqv9

rdlzhqv92#

这些表赠款的语法很简单:

GRANT privilege ON table TO user (WITH GRANT OPTION)

例如,对于最下面的记录,艾米丽授予Adam对Sales表WITH GRANT OPTION的SELECT权限(这样他就可以将该权限授予其他人,就像他在第一条记录中所做的那样):

GRANT SELECT ON Sales TO Adam WITH GRANT OPTION

相关问题