【问题标题】:Grant Oracle user Read Only to Specific View授予 Oracle 用户只读到特定视图
【发布时间】:2020-09-23 04:58:17
【问题描述】:

我正在尝试在 Oracle Database 12c 标准版中创建一个新的数据库用户帐户,该帐户只能访问运行特定视图(我们称之为“MyApp.MyView”)。

我以管理用户的身份在我的主应用程序架构下创建了一个视图。我创建了用户(详情如下),但它似乎能够查询应用程序架构中的任何表或视图。我只希望他们能够查询我所做的特定视图。这个可以吗?

然后,使用 SQLDeveloper,我右键单击 MyView 并将权限授予 MyUser。我可以将其作为 MyUser 进行查询,但我也可以查询任何内容,但我不希望这样。

-- USER SQL
ALTER USER "MyUser"
DEFAULT TABLESPACE "USERS"
TEMPORARY TABLESPACE "TEMP"
ACCOUNT UNLOCK ;

-- QUOTAS

-- ROLES
ALTER USER "MyUser" DEFAULT ROLE "CONNECT";

-- SYSTEM PRIVILEGES

【问题讨论】:

    标签: database oracle standards


    【解决方案1】:

    下面创建一个用户,该用户具有查询另一个架构中的视图/表所需的最低权限集。如果用户能够查询其他表/视图,那么他们必须已通过其他授权或角色在其他地方获得授权。

    create user MyUser identified by testpassword account unlock;
    
    grant create session to MyUser;
    
    grant read on MyApp.MyView to MyUser;
    

    【讨论】:

    • 谢谢。我最初尝试通过 SQL 开发人员中的 GUI 来完成它,无论出于何种原因,它给了我比我需要的更多的东西。这是完美的。
    猜你喜欢
    • 1970-01-01
    • 2020-11-30
    • 1970-01-01
    • 2017-04-07
    • 2014-01-02
    • 1970-01-01
    • 1970-01-01
    • 2013-11-30
    • 1970-01-01
    相关资源
    最近更新 更多