sql - Oracle 10 中的 GRANT 问题

标签 sql oracle oracle10g roles

我有具有管理员权限的用户 admin 和默认的 oracle XE 用户 hr。用户 admin 创建了表 CAR,角色 S 并已授予此角色对表 CAR 的 SELECT。然后管理员将角色 S 授予用户 hr。但是当 hr 尝试 select * from admin.car 时,数据库会给出一个错误,指出这样的表或 View 不存在。 这是代码:

create role S;
grant select on admin.car to S;
grant S to hr;

问题是什么?

最佳答案

当用户登录 Oracle 时,将启用所有默认 角色,但必须使用 SET ROLE 语句启用非默认角色:

SET ROLE S;

将角色设置为默认角色

默认角色意味着该角色在登录时始终为当前 session 启用。它还使得不再需要发出 SET ROLE 语句。要将角色设置为 DEFAULT 角色,您需要发出 ALTER USER 语句:

ALTER USER hr
DEFAULT ROLE S;

引用:

关于sql - Oracle 10 中的 GRANT 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4179081/

相关文章:

php - php页面中复杂的mySQL查询

mysql - 在mysql中用2行替换一行

mysql - 时间段SQL计数查询

sql - 确定行是否已更新

oracle - 如何定义在启动 sql 模式时运行的命令?

oracle - 使用 PL SQL 读取 XML 元素出现次数

java - 在列上使用别名的查询会出错

Oracle 12c 客户端安装程序错误

sql - 如何不从不喜欢条件的地方排除 null?

oracle - 创建索引(在oracle DB中),仅当它不存在时