我有一个使用 DBA 角色定义的名为 DEPLOY 的用户。
通过 SQL Developer 登录时,用户可以按如下方式删除视图:
DROP VIEW APP_USER.VIEW_NAME_VW CASCADE CONSTRAINTS
如果我将相同的语句放在 DEPLOY 拥有的包中,那么它会失败并显示“ORA-00942:表或视图不存在”。
因此,似乎通过 DBA 角色授予的权限不会扩展到包执行的代码。
这个对吗?
我有一个使用 DBA 角色定义的名为 DEPLOY 的用户。
通过 SQL Developer 登录时,用户可以按如下方式删除视图:
DROP VIEW APP_USER.VIEW_NAME_VW CASCADE CONSTRAINTS
如果我将相同的语句放在 DEPLOY 拥有的包中,那么它会失败并显示“ORA-00942:表或视图不存在”。
因此,似乎通过 DBA 角色授予的权限不会扩展到包执行的代码。
这个对吗?
通过任何角色授予的特权,而不仅仅是 DBA 角色,在定义者的权限存储过程中不可用。假设您需要定义者的权限程序,您需要
deploy
通过直接授予授予用户删除角色的权限。最有可能在这种情况下,因为您可以拥有deploy
DBA 角色