Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Oracle 创建表和创建任意表权限之间的区别_Oracle_Create Table_Privileges_Any - Fatal编程技术网

Oracle 创建表和创建任意表权限之间的区别

Oracle 创建表和创建任意表权限之间的区别,oracle,create-table,privileges,any,Oracle,Create Table,Privileges,Any,我不明白这两种特权之间的区别 我找到了这两种解释,但对我没有帮助 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. 如果用户创建一个表,它将由创建它的用户所有,对吗?我不明白。使用创建表权限可以在自己的模式中创建表。所以

我不明白这两种特权之间的区别

我找到了这两种解释,但对我没有帮助

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.

如果用户创建一个表,它将由创建它的用户所有,对吗?我不明白。

使用
创建表
权限可以在自己的模式中创建表。所以用户
scott
可以做:

create table scott.mytable ( id number );
create table hr.employees ( id number );
createanytable
权限允许您在数据库中的任何架构中创建表。同样,用户
scott
可以:

create table scott.mytable ( id number );
create table hr.employees ( id number );

也就是说,制作一张属于其他人的桌子。

不,不对。语言似乎很清楚。如果用户具有CREATEANY TABLE权限,则可以在他/她自己的模式以外的模式中创建表;也就是说,这些表将由其他用户拥有,而不是由他/她自己拥有。“你不明白的是什么?”我明白了。现在我明白了。如果我将该特权授予
mathguy
,那么
mathguy
就可以在
scott
模式中创建一个表(由
scott
所有!),类似于
创建表scott.tbl(id号,…)
。请注意,架构名称在新表名之前。这将在schema
SCOTT
中创建一个表
TBL
,即使用户
SCOTT
没有创建该表。“创建表”是不是每个用户自动获得的默认权限,除非DBA撤销?我相信没有默认权限。创建用户时,用户无法执行任何操作,甚至无法连接到数据库。您必须授予他们所需的特权。