gpt4 book ai didi

oracle - 当我尝试连接时,为什么 Oracle 认为我的用户没有 "Create Session"权限?

转载 作者:行者123 更新时间:2023-12-04 17:00:26 25 4
gpt4 key购买 nike

我在 Oracle 11g 数据库中创建了一个名为 的角色。测试用户角色 最终将拥有更多特权,但目前只有 创建 session 特权。我已将该角色分配给用户,测试用户 .这是他们唯一的角色。

我创建如下:

CREATE ROLE TestUserRole IDENTIFIED BY somepassword;
GRANT Create Session TO TestUserRole;
CREATE USER TestUser IDENTIFIED BY somepassword;
GRANT TestUserRole TO TestUser;

当我尝试连接到数据库时,我收到:

ORA-01045: user TESTUSER lacks CREATE SESSION privilege; logon denied



我已经验证(我认为)用户和角色设置成功。如果我查询
select * from dba_role_privs where grantee = 'TESTUSER'

我得到
| Grantee  | Granted_Role | Admin_Option | Default_Role |
---------------------------------------------------------
| TESTUSER | TESTUSERROLE | NO | YES |

然后如果我查询
select * from role_sys_privs where role = 'TESTUSERROLE'

我得到
| Role         | Privilege      | Admin_Option |
------------------------------------------------
| TESTUSERROLE | CREATE SESSION | NO |

这样看来我已经成功创建了用户和角色,用户有角色,角色有创建 session 权限。然而,当我尝试登录时,Oracle 告诉我该用户没有创建 session 权限。我哪里错了?我是否必须直接将此权限分配给用户而不是通过角色?

最佳答案

您可以尝试在没有“IDENTIFIED BY 密码”子句的情况下创建您的角色吗?

Here它说如下:

The BY password clause lets you create a local role and indicates that the user must specify the password to the database when enabling the role.



那么问题是因为当登录角色还没有启用时,用户必须使用指定的“SET ROLE”语句启用它 here但这只能在登录后完成。

关于oracle - 当我尝试连接时,为什么 Oracle 认为我的用户没有 "Create Session"权限?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22995386/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com