如何在Oracle中创建只能查看包和程序源代码而不更改它们并查看表字段而不是表中数据的用户?
我知道您可以向特定用户授予视图,但如何在不隐藏字段的情况下拒绝访问表数据?
我感谢任何帮助。
查看数据字典信息有一个角色。因此用户将能够查看表,视图,包,系统对象等的定义。
grant select_catalog_role to user;
或者Select Any Dictionary
补助金。
但通过此授权,用户将能够看到比他需要的更多数据。另一种方法是在DBA_SOURCE,DBA_TABLES视图上授予select。
请参阅dba.stackexchange.com上的讨论here。
我找到了解决方案。您需要在DBA_SOURCE上创建一个视图,并在此视图上授予用户SELECT。在这种情况下,用户将能够看到包和过程以及表结构的代码,但不能执行它们。