Oracle 将资源授予用户以创建表
我试图授予db用户权限,并希望允许用户创建表。检查“资源”权限时,它包含以下内容:Oracle 将资源授予用户以创建表,oracle,squirrel-sql,Oracle,Squirrel Sql,我试图授予db用户权限,并希望允许用户创建表。检查“资源”权限时,它包含以下内容: SELECT privilege FROM dba_sys_privs WHERE grantee = 'RESOURCE'; CREATE TABLE testable ( sessionID varchar2(32 char) not null, attributeA varchar(10) , attributeB varchar2(50)
SELECT privilege FROM dba_sys_privs WHERE grantee = 'RESOURCE';
CREATE TABLE testable (
sessionID varchar2(32 char) not null,
attributeA varchar(10) ,
attributeB varchar2(50)
);
资源
CREATE TABLE
CREATE OPERATOR
CREATE TYPE
CREATE CLUSTER
CREATE TRIGGER
CREATE INDEXTYPE
CREATE PROCEDURE
CREATE SEQUENCE
正如我注意到的,createtable包含在内,我假设可以将资源授予我的用户,并且用户可以在自己的模式中创建表
GRANT RESOURCE TO User1;
在User1上,我运行以下命令:
SELECT privilege FROM dba_sys_privs WHERE grantee = 'RESOURCE';
CREATE TABLE testable (
sessionID varchar2(32 char) not null,
attributeA varchar(10) ,
attributeB varchar2(50)
);
但我得到的是:
Error: ORA-01031: insufficient privileges
SQLState: 42000
ErrorCode: 1031
如果我手动将“createtable”授权给User1,它就会工作。为什么会这样
GRANT CREATE TABLE TO User1;
一旦您的用户获得
资源
授权(来自sys user),您将需要重新连接,因为您的当前会话
无法识别新授予的授权(资源)
干杯 希望在向用户授予资源授权后,您可以重新登录该用户。表示断开并连接用户,然后尝试创建表。另外,应该从sys user执行grant资源。您是对的,我需要在授予资源后重新连接,但不是为了授予create table。非常感谢。如果此答案解决了您的问题,则接受此答案,以便将此问题标记为已解决。