Oracle alter table权限不足

pde*_*vel 2 sql oracle permissions privileges database-administration

我刚刚安装了oracle 12c然后我试图授予用户各种权限.

我以系统身份登录,并且我已经授予了create user哪些权限.但是,虽然授予权利alter table给了我错误

ORA-00990: missing or invalid privilege

关于这个问题的研究让我想到了SO的另一篇文章.这篇帖子的评论表明,这是因为我没有以用户身份登录.GLOBAL但是我不知道如何以GLOBAL用户身份登录.

我必须创建一个吗?

有没有替代解决方案?

Ale*_*ole 9

没有ALTER TABLE特权.文档列出了有效权限.

如果您有,CREATE TABLE那么您可以创建和更改自己的表.要更改另一个模式中的表的定义,您需要该ALTER ANY TABLE特权.

奇怪的是,这个页面的确指的是ALTER TABLE:

例如,要在表上创建触发器,用户需要表的ALTER TABLE对象特权和CREATE TRIGGER系统特权.

ALTER TABLE命令的先决条件也说:

该表必须位于您自己的模式中,或者您必须具有ALTER该表的对象特权,或者您必须具有ALTER ANY TABLE系统特权.

在这种情况下,它更清晰; " ALTER对象权限"意味着您已ALTER由其所有者直接授予表,而不是通过ALTER ANY TABLE系统权限,如:

create table t42(id number);
grant alter on t42 to user2;
Run Code Online (Sandbox Code Playgroud)

然后user2就可以alter table t42 ...,或者在它上面创建一个触发器(例如),但不能创建任何其他表.