And*_*dy5 81 oracle access-control oracle11g
有人可以告诉我如何建立在Oracle 11g中用户,只授予该用户只能执行一个特定的存储过程,并在该过程中的表的能力.
我真的不确定怎么做!
cag*_*boy 85
以SYSTEM身份连接.
CREATE USER username IDENTIFIED BY apassword;
GRANT CONNECT TO username;
GRANT EXECUTE on schema.procedure TO username;
Run Code Online (Sandbox Code Playgroud)
您可能还需要:
GRANT SELECT [, INSERT] [, UPDATE] [, DELETE] on schema.table TO username;
Run Code Online (Sandbox Code Playgroud)
到程序使用的任何表.
小智 26
按照以下步骤在Oracle中创建用户.
- 以系统用户身份连接
CONNECT <USER-NAME>/<PASSWORD>@<DATABASE NAME>;
Run Code Online (Sandbox Code Playgroud)
- 创建用户查询
CREATE USER <USER NAME> IDENTIFIED BY <PASSWORD>;
Run Code Online (Sandbox Code Playgroud)
- 提供角色
GRANT CONNECT,RESOURCE,DBA TO <USER NAME>;
Run Code Online (Sandbox Code Playgroud)
- 提供特权
GRANT CREATE SESSION GRANT ANY PRIVILEGE TO <USER NAME>;
GRANT UNLIMITED TABLESPACE TO <USER NAME>;
Run Code Online (Sandbox Code Playgroud)
- 提供对表格的访问.
GRANT SELECT,UPDATE,INSERT ON <TABLE NAME> TO <USER NAME>;
Run Code Online (Sandbox Code Playgroud)
APC*_*APC 21
Oracle文档全面,在线且免费.你应该学会使用它.你可以在这里找到CREATE USER和GRANT的语法,
为了连接到数据库,我们需要为用户授予CREATE SESSION特权.
要允许存储过程的新用户权限,我们需要授予EXECUTE特权.设保人必须是以下之一:
请注意,我们通常不需要为存储过程使用的对象授予权限以便使用该过程.默认权限是我们执行具有与过程所有者相同权限的过程,并且在执行过程时继承它们的权限.这由AUTHID子句涵盖.默认值是definer(即过程所有者).只有当AUTHID设置为CURRENT_USER(调用者,即我们的新用户)时,我们才需要授予该过程使用的对象的权限. 了解更多.
erh*_*hun 10
不要在TEST和PROD等关键环境中使用这些方法.以下步骤仅适用于本地环境.对于我的localhost,我通过以下步骤创建用户:
重要说明:使用SYSTEM用户凭据创建用户.否则,在同一数据库上运行多个应用程序时可能会遇到问题.
CONNECT SYSTEM/<<System_User_Password>>@<<DatabaseName>>; -- connect db with username and password, ignore if you already connected to database.
Run Code Online (Sandbox Code Playgroud)
然后运行以下脚本
CREATE USER <<username>> IDENTIFIED BY <<password>>; -- create user with password
GRANT CONNECT,RESOURCE,DBA TO <<username>>; -- grant DBA,Connect and Resource permission to this user(not sure this is necessary if you give admin option)
GRANT CREATE SESSION TO <<username>> WITH ADMIN OPTION; --Give admin option to user
GRANT UNLIMITED TABLESPACE TO <<username>>; -- give unlimited tablespace grant
Run Code Online (Sandbox Code Playgroud)
编辑:如果你遇到oracle ora-28001的问题,密码已经过期,这也很有用
select * from dba_profiles;-- check PASSWORD_LIFE_TIME
ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED; -- SET IT TO UNLIMITED
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
534139 次 |
| 最近记录: |