【问题标题】:Assigning a table to a user (oracle, sql plus)将表分配给用户(oracle、sql plus)
【发布时间】:2016-11-30 16:29:18
【问题描述】:

我刚刚创建了一个名为 ugestion 的用户(我以 SYSTEM 身份登录)。我怎样才能让他管理我的餐桌 tblinstituciones?我只是想让他控制那张特定的桌子。哪个是正确的命令?似乎没有任何效果,我不想说“GRANT ALTER ANY TABLE TO ugestion”,因为我只希望他能够只管理那个特定的表。 在执行该命令之前,我是否需要给用户一些特殊权限?而且,我应该执行什么命令?我之前已经执行了一些命令,例如“GRANT ALTER TABLE ON tblinstituciones TO ugestion;”但它没有工作。我从 oracle、sqlplus 开始。

【问题讨论】:

  • 你不能。首先,您不应该在 SYSTEM 模式中创建对象。其次,您可以赋予用户对表执行 DML 的能力(插入、更新、删除),但不能赋予用户对单个表进行 DDL 的能力。实际上,如果您想这样做,您应该在该用户的架构中创建表。我想,您可以创建一个您拥有的存储过程,在表上执行 DDL,并授予用户执行该存储过程的权限,但这是一种更复杂的方法。
  • 谢谢,但我不知道如何正确地做到这一点。无论如何谢谢你,我相信我以后会更好地理解这一点,而且它似乎非常非常有用......

标签: database oracle sqlplus privileges


【解决方案1】:

第一:

以 SYSTEM 身份登录时,发出以下命令:

DROP TABLE SYSTEM.TBLINSTITUCIONES;

这将摆脱您在 SYSTEM 模式中创建的表。正如其他人所提到的,您不应在 SYSTEM 或 SYS 模式中创建表或其他对象。

下一步:

注销 SYSTEM 帐户。

下一步:

以 UGESTION 用户身份登录。

下一步:

CREATE TABLE UGESTION.TBLINSTITUCIONES
  (put all your field definitions here);

将“将所有字段定义放在这里”替换为您需要在此表中创建的任何字段的定义。除非您执行此操作,否则上述语句将不起作用。

祝你好运。

【讨论】:

  • 非常感谢。我已经创建了表!从现在开始,我必须考虑不要将表创建为 SYSTEM。
【解决方案2】:

不应将系统用户用于任何用户对象。请这样做:

create table ugestion.tblinstituciones as select * from system.tblinstituciones;
drop table system.tblinstituciones;

这样,表定义和数据都会从系统移动到用户模式(实际上是用新模式中的数据创建新表)。

【讨论】:

    【解决方案3】:

    放下桌子。

    重新创建它,但在您的 CREATE TABLE 命令中,使用您的用户名作为表名的前缀...a la

    Create Table Scott.Stackoverflow (
     A Integer,
     B Varchar2(20),
     C Clob);
    

    SCOTT 也是您希望表所属的架构/用户,当然也可以用您的原始 DDL 替换实际的 DDL。

    你也可以...

     CREATE TABLE SCOTT.STACKOVERFLOW AS SELECT * FROM ORIGINAL_TABLE;
    

    CTAS 不会抓取列 cmets、约束、索引等内容。

    现在他们拥有这张桌子。他们可以用它做任何他们想做的事情。是他们的。他们可以放下它。他们可以改变它。他们可以插入/更新/删除/截断它。他们可以将权限授予其他人。

    您永远不应该在 SYSTEM 架构(或 SYS!)中创建对象以获取其价值。

    【讨论】:

    • 当我执行你的命令时,它说我缺少左括号。我应该把括号放在哪里?如果我这样输入“CREATE TABLE (username.tablename);”它也给了我错误。不过还是谢谢你的回答!
    猜你喜欢
    • 2022-08-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-31
    • 1970-01-01
    • 2021-10-23
    相关资源
    最近更新 更多