【问题标题】:Insufficient privilege when I try to Create Table尝试创建表时权限不足
【发布时间】:2014-03-29 10:01:12
【问题描述】:

我是 oracle 新手,我在 Pl/Sql 开发人员上工作,我可以通过 pl/sql 开发人员 IDE 创建表,但我不能在查询中这样做:

Create Table table_name as select * from Docs

返回权限不足错误

谁能告诉我原因...提前谢谢

【问题讨论】:

  • 如果您可以使用create table (...); 创建表,则该错误表示您没有权限从表中选择DOCS
  • 请运行以下查询并将其结果附加到问题中:select * from USER_TAB_PRIVS where table_name = 'DOCS'select * from USER_SYS_PRIVS WHERE privilege like 'CREATE%'
  • 感谢@kordirko ...第一个查询不返回任何行,第二个返回创建视图权限...看起来我没有创建表权限...但我的问题仍然是为什么我可以通过pl/sql开发者IDE创建
  • @karlo 请同时检查授予您用户的角色,使用:SELECT * FROM USER_ROLE_PRIVS。我猜角色resource 已授予您的用户,pl/sql 开发人员在创建表时启用该角色,但该角色在交互式会话中被禁用-您必须使用@987654328 为会话“启用”该角色@.
  • 就是这样......它解决了我的问题

标签: sql oracle privileges plsqldeveloper


【解决方案1】:

请在连接数据库时使用 SYSTEM 用户,它具有完全权限。

【讨论】:

  • 您不应在 system 架构中创建对象。使用它为另一个架构授予必要的权限并在其下创建对象。
  • 我没有系统用户密码
  • 我的问题为什么我可以通过 pl/sql Developer 做到这一点?
  • -1 这是一个非常糟糕的建议。 system 用户应该永远用于创建常规表。它仅适用于 DBA 活动(创建表空间、创建用户)。
  • SYSTEM 用户可能对开发者不可用。
猜你喜欢
  • 1970-01-01
  • 2020-12-10
  • 2017-04-24
  • 2010-09-13
  • 2013-10-13
  • 2018-08-18
  • 2023-03-19
  • 1970-01-01
  • 2018-09-25
相关资源
最近更新 更多