Oracle - 如何创建只读用户
可以在 Oracle 数据库中创建只读数据库用户吗? 如何?
It's possible create a readonly database user at an Oracle Database?
How?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
可以在 Oracle 数据库中创建只读数据库用户吗? 如何?
It's possible create a readonly database user at an Oracle Database?
How?
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(5)
Oracle 数据库中的用户仅具有您授予的权限。因此,您只需不授予任何其他权限即可创建只读用户。
当您创建用户时,
该用户甚至没有登录数据库的权限。您可以授予该权限
,然后您可以继续授予您想要的任何读取权限。例如,如果您希望
RO_USER
能够查询SCHEMA_NAME.TABLE_NAME
,您可以执行类似的操作,但是,一般来说,您最好创建一个角色,并授予角色的对象权限,以便您可以将该角色授予不同的用户。类似
创建角色
授予角色对特定模式中每个表的 SELECT 访问权限
然后将该角色授予用户
A user in an Oracle database only has the privileges you grant. So you can create a read-only user by simply not granting any other privileges.
When you create a user
the user doesn't even have permission to log in to the database. You can grant that
and then you can go about granting whatever read privileges you want. For example, if you want
RO_USER
to be able to querySCHEMA_NAME.TABLE_NAME
, you would do something likeGenerally, you're better off creating a role, however, and granting the object privileges to the role so that you can then grant the role to different users. Something like
Create the role
Grant the role SELECT access on every table in a particular schema
And then grant the role to the user
例如,作为用户系统执行以下步骤。
将 p_owner 设置为架构所有者,并将 p_readonly 设置为只读用户的名称。
Execute the following procedure for example as user system.
Set p_owner to the schema owner and p_readonly to the name of the readonly user.
您可以创建用户并授予权限
创建由read_only标识的用户read_only;
授予创建会话,选择任何表只读;
you can create user and grant privilege
create user read_only identified by read_only;
grant create session,select any table to read_only;
由于每个用户通过 public 自动获得许多公共执行,因此在默认数据库中严格来说是不可能的。
It is not strictly possible in default db due to the many public executes that each user gains automatically through public.