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号,…)
。请注意,架构名称在新表名之前。这将在schemaSCOTT
中创建一个表TBL
,即使用户SCOTT
没有创建该表。“创建表”是不是每个用户自动获得的默认权限,除非DBA撤销?我相信没有默认权限。创建用户时,用户无法执行任何操作,甚至无法连接到数据库。您必须授予他们所需的特权。