问题描述
考虑以下来自Oracle数据字典的信息 当执行以下命令时,获取信息
SELECT grantee,owner,table_name,grantor,privilege,grantable
FROM user_tabs_privs;
为导致这些授权存在于已发出的 sql 语句是什么? 字典?还针对哪个用户执行了该语句的每个语句?
解决方法
查看此示例并将其与您的输出进行比较;你会看到哪个命令会导致哪个结果。
用户mike
:
SQL> show user
USER is "MIKE"
SQL> SELECT grantee,owner,table_name,grantor,privilege,grantable
2 FROM user_tab_privs;
no rows selected
用户 scott
将授予 mike
一些东西:
SQL> connect scott/tiger
Connected.
SQL> grant select on test to mike;
Grant succeeded.
SQL> grant delete on dept to mike with grant option;
Grant succeeded.
回到mike
,看看发生了什么:
SQL> connect mike/lion
Connected.
SQL> SELECT grantee,grantable
2 FROM user_tab_privs;
GRANTEE OWNER TABLE_NAME GRANTOR PRIVILEGE GRANTABLE
------- ------ ---------- ---------- ---------- ----------
MIKE SCOTT DEPT SCOTT DELETE YES
MIKE SCOTT TEST SCOTT SELECT NO
SQL>
,
运行以下步骤后,即可得到想要的结果
(1)首先以Ann身份登录,运行SQL语句: 将项目选择授予比利并带有授予选项; (2)还是像安一样,小跑SQL语句: 将员工的删除权限授予 marlam ; (3) 以 Billy 身份登录,运行 SQL 语句: 授予 leah 项目选择权;