CREATE TABLE和CREATE ANY TABLE权限的区别

6

我不明白这两种权限的区别。

我找到了这两个解释,但它们并没有帮助我。

CREATE TABLE -> Enables a user to create a table owned by that user.

CREATE ANY TABLE -> Enables a user to create a table owned by any user in the database.

如果用户创建了一个表,那么这个表就会归属于创建它的用户,对吗?我不太明白。

1
不,不是这样的。该语言似乎非常清晰。如果用户拥有CREATE ANY TABLE特权,则可以在除自己之外的模式中创建表; 也就是说,这些表将由其他用户拥有,而不是由他/她自己所有。你不理解的是什么? - user5683823
@mathguy 我明白了,现在我懂了。 - AwesomeGuy
3
如果我授予 mathguy 这个权限,那么 mathguy 就可以在 scott 模式中创建一个表(由 scott 拥有),例如 create table scott.tbl (id number , .....)。请注意,模式名称被添加到新表名的前面。这将创建一个表 TBL 在模式 SCOTT 中,即使用户 scott 没有创建该表。 - user5683823
1个回答

9

CREATE TABLE 权限允许您在自己的架构中创建表。因此,用户 scott 可以执行以下操作:

create table scott.mytable ( id number );
CREATE ANY TABLE 权限允许你在数据库的任何模式下创建表。因此,用户scott可以执行以下操作:
create table hr.employees ( id number );

也就是说,创建一个属于他人的表格。


“CREATE TABLE”是每个用户默认拥有的权限吗?除非被数据库管理员撤销。 - VHS
1
我认为没有默认权限。当你创建一个用户时,他们什么也做不了,甚至不能连接到数据库。你必须授予他们所需的权限。 - eaolson

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接