暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Oracle 授予新数据库用户上帝特权。

askTom 2017-03-01
387

问题描述

嗨,

我已经给了Oracle 12c中新创建的用户 (mydbauser) 以下权限,但用户仍然无法在列中创建约束以在create table操作中引用另一个表,并说权限不足。

立即执行 '创建用户' | | P_USER_NAME | | '由' | | P_PASSWORD标识;
在用户上执行立即 “更改用户” | | P_USER_NAME | | ”配额300M;
立即执行 '授予连接,资源到' | | P_USER_NAME;
立即执行 '授予所有权限' | | P_USER_NAME;
使用管理员选项立即执行 '授予DBA到' | | P_USER_NAME | | ';

我希望用户做任何事情。

我在下面的操作中得到权限不足的错误,
创建表mydbauser.Employee _ 薪金 (
Employee _ id号不为空,
更改日期不为空,
工资号码 (8,2) 不为空,
约束pk_employee_salves主键 (employee_id,更改日期),
约束fk_employee _ 薪金外键 (employee_id)
参考OE.Employee (员工id)
在删除级联上)
/
OP:
错误报告-
ORA-01031: 权限不足
01031. 00000-“特权不足”
* 原因: 尝试执行数据库操作而没有
必要的特权。
* 操作: 询问您的数据库管理员或指定的安全性
管理员授予您必要的特权

专家解答

没有系统级别的 “引用” 特权。需要在对象本身上授予它。甚至sysdba都没有这种全球能力

SQL> conn sys/admin as sysdba
Connected.

SQL> CREATE TABLE employee_salaries (
  2  employee_id NUMBER NOT NULL,
  3  change_date DATE NOT NULL,
  4  salary NUMBER(8,2) NOT NULL,
  5  CONSTRAINT pk_employee_salaries PRIMARY KEY (employee_id, change_date),
  6  CONSTRAINT fk_employee_salaries FOREIGN KEY (employee_id)
  7  REFERENCES scott.emp (empno)
  8  ON DELETE CASCADE)
  9  /
REFERENCES scott.emp (empno)
                 *
ERROR at line 7:
ORA-01031: insufficient privileges



你可以做一些事情来循环你的表,例如

SQL> begin
  2  EXECUTE IMMEDIATE 'CREATE USER demo IDENTIFIED BY demo';
  3  EXECUTE IMMEDIATE 'ALTER USER demo QUOTA 300M ON USERS';
  4  EXECUTE IMMEDIATE 'GRANT CONNECT,RESOURCE TO demo';
  5  EXECUTE IMMEDIATE 'GRANT ALL PRIVILEGES TO demo';
  6  EXECUTE IMMEDIATE 'GRANT DBA TO demo WITH ADMIN OPTION';
  7
  8  for i in ( select table_name from dba_tables where owner = 'SCOTT' ) loop
  9    execute immediate 'grant references on scott.'||i.table_name||' to demo';
 10  end loop;
 11  end;
 12  /

PL/SQL procedure successfully completed.

SQL>
SQL> conn demo/demo
Connected.

SQL> CREATE TABLE employee_salaries (
  2  employee_id NUMBER NOT NULL,
  3  change_date DATE NOT NULL,
  4  salary NUMBER(8,2) NOT NULL,
  5  CONSTRAINT pk_employee_salaries PRIMARY KEY (employee_id, change_date),
  6  CONSTRAINT fk_employee_salaries FOREIGN KEY (employee_id)
  7  REFERENCES scott.emp (empno)
  8  ON DELETE CASCADE)
  9  /

Table created.


「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论