分配一个 table 给一个用户 (oracle, sql plus)
Assigning a table to a user (oracle, sql plus)
我刚刚创建了一个名为 ugestion 的用户(我以 SYSTEM 身份登录)。我怎样才能让他管理我的 table tblinstituciones?我只是想让他控制那个特定的 table。哪个是正确的命令?似乎什么都行不通,我不想放 "GRANT ALTER ANY TABLE TO ugestion" 因为我只是希望他只能管理那个特定的。
我是否需要在执行该命令之前给用户一些特殊权限?而且,我应该执行什么命令? 我之前执行过一些命令,例如 "GRANT ALTER TABLE ON tblinstituciones TO ugestion ; " 但它没有用。我从 oracle、sqlplus.
开始
删除 table。
重新创建它,但在您的 CREATE TABLE 命令中,在 table 名称前加上您的用户名...a la
Create Table Scott.Whosebug (
A Integer,
B Varchar2(20),
C Clob);
如果 SCOTT 是 schema/user,您希望 table 也属于您,当然用您的原始 DDL 替换实际的 DDL。
你也可以...
CREATE TABLE SCOTT.Whosebug AS SELECT * FROM ORIGINAL_TABLE;
CTAS 不会抓取列注释、约束、索引等内容
现在他们拥有 table。他们可以用它做任何他们想做的事。这是他们的。他们可以放弃它。他们可以改变它。他们可以 insert/update/delete/truncate 它。他们可以将权限授予其他人。
你永远不应该在 SYSTEM 架构(或 SYS!)中创建对象,以获得它的价值。
第一个:
以 SYSTEM 身份登录后,发出以下命令:
DROP TABLE SYSTEM.TBLINSTITUCIONES;
这将删除您在 SYSTEM 架构中创建的 table。正如其他人所提到的,您不应在 SYSTEM 或 SYS 架构中创建 tables 或其他对象。
下一个:
注销 SYSTEM 帐户。
下一个:
以 UGESTION 用户身份登录。
下一个:
CREATE TABLE UGESTION.TBLINSTITUCIONES
(put all your field definitions here);
将 "put all your field definitions here" 替换为您需要在此 table 中创建的任何字段的定义。在您执行此操作之前,上面的语句将不起作用。
祝你好运。
系统用户不应该用于任何用户对象。请做:
create table ugestion.tblinstituciones as select * from system.tblinstituciones;
drop table system.tblinstituciones;
这样 table 定义和数据都将从系统移动到用户模式(实际上您使用新架构中的数据创建新 table)。
我刚刚创建了一个名为 ugestion 的用户(我以 SYSTEM 身份登录)。我怎样才能让他管理我的 table tblinstituciones?我只是想让他控制那个特定的 table。哪个是正确的命令?似乎什么都行不通,我不想放 "GRANT ALTER ANY TABLE TO ugestion" 因为我只是希望他只能管理那个特定的。 我是否需要在执行该命令之前给用户一些特殊权限?而且,我应该执行什么命令? 我之前执行过一些命令,例如 "GRANT ALTER TABLE ON tblinstituciones TO ugestion ; " 但它没有用。我从 oracle、sqlplus.
开始删除 table。
重新创建它,但在您的 CREATE TABLE 命令中,在 table 名称前加上您的用户名...a la
Create Table Scott.Whosebug (
A Integer,
B Varchar2(20),
C Clob);
如果 SCOTT 是 schema/user,您希望 table 也属于您,当然用您的原始 DDL 替换实际的 DDL。
你也可以...
CREATE TABLE SCOTT.Whosebug AS SELECT * FROM ORIGINAL_TABLE;
CTAS 不会抓取列注释、约束、索引等内容
现在他们拥有 table。他们可以用它做任何他们想做的事。这是他们的。他们可以放弃它。他们可以改变它。他们可以 insert/update/delete/truncate 它。他们可以将权限授予其他人。
你永远不应该在 SYSTEM 架构(或 SYS!)中创建对象,以获得它的价值。
第一个:
以 SYSTEM 身份登录后,发出以下命令:
DROP TABLE SYSTEM.TBLINSTITUCIONES;
这将删除您在 SYSTEM 架构中创建的 table。正如其他人所提到的,您不应在 SYSTEM 或 SYS 架构中创建 tables 或其他对象。
下一个:
注销 SYSTEM 帐户。
下一个:
以 UGESTION 用户身份登录。
下一个:
CREATE TABLE UGESTION.TBLINSTITUCIONES
(put all your field definitions here);
将 "put all your field definitions here" 替换为您需要在此 table 中创建的任何字段的定义。在您执行此操作之前,上面的语句将不起作用。
祝你好运。
系统用户不应该用于任何用户对象。请做:
create table ugestion.tblinstituciones as select * from system.tblinstituciones;
drop table system.tblinstituciones;
这样 table 定义和数据都将从系统移动到用户模式(实际上您使用新架构中的数据创建新 table)。