Oracle 数据字典

问题描述

考虑以下来自Oracle数据字典的信息 当执行以下命令时,获取信息

SELECT grantee,owner,table_name,grantor,privilege,grantable
FROM user_tabs_privs;

enter image description here

为导致这些授权存在于已发出的 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 项目选择权;