回答
以系统连接。
CREATE USER username IDENTIFIED BY apassword;
GRANT CONNECT TO username;
GRANT EXECUTE on schema.procedure TO username;
您可能还需要:
GRANT SELECT [, INSERT] [, UPDATE] [, DELETE] on schema.table TO username;
取其表的过程使用。
Oracle文档全面,在线且免费。你应该学会使用它。你可以找到CREATE USER here和GRANT here的语法,
为了连接数据库,我们需要授予用户the CREATE SESSION privilege。
要允许存储过程的新用户权限,我们需要授予EXECUTE特权。让与人必须是这些中的一个:
- 过程所有者
- 授予用户对程序与执行WITH ADMIN选项
- 与授予用户的任何对象特权
- DBA或其他超级用户帐户。
请注意,我们通常不需要授予存储过程使用的对象的权限,以便使用该过程。默认权限是我们执行与程序所有者相同权限的程序,并且在执行程序时继承权限。这由AUTHID子句覆盖。默认值是定义者(即过程所有者)。只有当AUTHID设置为CURRENT_USER(调用者,即我们的新用户)时,我们是否需要授予该过程使用的对象的权限。 Find out more。
CREATE USER USER_NAME IDENTIFIED BY PASSWORD;
GRANT CONNECT, RESOURCE TO USER_NAME;
CONNECT,RESOURCE,DBA”[*“提供这些角色是为了与以前的版本兼容的Oracle数据库...... Oracle建议您设计自己的数据库安全角色,而不是依赖这些角色。这些角色可能不会由未来版本的Oracle数据库自动创建。“*](http://docs.oracle.com/zh_cn/docs/default.aspx)。 com/cd/B28359_01/server.111/b28286/statements_9013.htm#r209c1-t47) – 2016-06-07 19:21:36
按照以下步骤在Oracle中创建用户。
--connect为系统用户
CONNECT <USER-NAME>/<PASSWORD>@<DATABASE NAME>;
- 创建用户查询
CREATE USER <USER NAME> IDENTIFIED BY <PASSWORD>;
--Provide角色
GRANT CONNECT,RESOURCE,DBA TO <USER NAME>;
--Provide特权
GRANT CREATE SESSION GRANT ANY PRIVILEGE TO <USER NAME>;
GRANT UNLIMITED TABLESPACE TO <USER NAME>;
- 提供对表的访问。
GRANT SELECT,UPDATE,INSERT ON <TABLE NAME> TO <USER NAME>;
在Oracle 11g中,它是“grant dba”还是“grand sysdba”? – jondinham 2014-09-09 02:59:57
ORA-00990:'授予创建会话授予任何特权至
在会话后应该有一个逗号 – 2014-12-12 19:36:56
步骤1。
create user raju identified by deshmukh;
步骤2.
grant connect , resource to raju;
步骤3.
grant unlimitted tablespace to raju;
步骤4。
grant select , update , insert , alter to raju;
'CONNECT,RESOURCE,DBA' [*”提供这些角色是为了与以前版本的Oracle数据库兼容...... Oracle建议您为数据库设计自己的角色而不是依赖这些角色,这些角色可能不会由未来版本的Oracle数据库自动创建。“*](http://docs.oracle.com/cd/B28359_01/server.111/b28286/statements_9013.htm# r209c1-T47) – 2016-06-07 19:22:20
不要使用像TEST和PROD关键环境中的这些方法。下面的步骤只是针对当地环境而建议的。对于我的本地我创建通过这些步骤的用户:
重要提示:创建credentials.Otherwise当您运行在同一个数据库的多个应用程序,你可能面临的问题SYSTEM用户的用户。如果你面对一个有关Oracle ORA-28001问题的密码已经过期,这将很有运行
:CONNECT SYSTEM/<<System_User_Password>>@<<DatabaseName>>; -- connect db with username and password, ignore if you already connected to database.
然后在下面的脚本
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
EDIT运行
select * from dba_profiles;-- check PASSWORD_LIFE_TIME ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED; -- SET IT TO UNLIMITED
'CONNECT,RESOURCE,DBA' [*“提供这些角色是为了与以前版本的Oracle数据库兼容... Oracle建议您设计自己的数据库安全角色,而不是依赖这些角色。这些角色可能不会由将来版本的Oracle数据库自动创建。“*](http://docs.oracle.com/cd/B28359_01/server.111/b28286/statements_9013.htm#r209c1-t47) – 2016-06-07 19:20:58
在评论如前所述多次使用CONNECT
,RESOURCE
和DBA
角色由Oracle气馁。
你必须连接为SYS来创建角色并赋予这个角色的用户(一个或多个)。你可以根据自己的喜好使用SQL Developer或SQL * Plus。不要忘记在登录字符串中提及SYSDBA角色。 connect_identifier
使用不同的语法。
sqlplus sys/<<password>>@<<connect_identifier>> as sysdba
比方说,你有一个像12cR1与“Oracle Technology Network Developer Day”提供的VM之一。在连接字符串可能(连接到提供PDB):
sqlplus sys/[email protected]/orcl as sysdba
sqlplus [email protected]"127.0.0.1/orcl" as sysdba -- to avoid putting the pw in clear
注意,在Unix下,引号都进行转义,否则他们将外壳消耗。因此"
变得\"
。
然后创建角色MYROLE
并授予它的其他角色或权限。我几乎增加了最低限度做一些有趣的事情:
create role myrole not identified;
grant create session to myrole;
grant alter session to myrole;
grant create table to myrole;
下一页您创建用户MYUSER
。以下为identified by
这是密码的字符串区分大小写。其余的不是。你也可以使用SQL分隔标识符,而不是常规标识符被转换恩大写和受到一些限制(由引号包围"
)。配额可以是unlimited
而不是20m
。
create user myuser identified by myuser default tablespace users profile default account unlock;
alter user myuser quota 20m on users;
grant myrole to myuser;
最终,您作为新用户进行连接。
请注意,您也可以改变默认的配置文件,或者提供另外一个自定义一些设置,密码的保质期,允许失败的登录尝试根据不同的Oracle版本数等
- 1. Oracle - 授予用户权限
- 2. 如何授予在Oracle中授予权限的权限
- 3. Oracle 11g语句创建新用户和授予特权?
- 4. 授予Oracle授予权限
- 5. 创建用户并授予任何权限
- 6. 授权在Oracle 11g上创建视图
- 7. 如何向Liferay中新创建的用户授予Alfresco权限
- 8. MySql授予用户权限
- 9. 选择并更新授予权限oracle
- 10. 如何授予“授予创建会话”权限?
- 11. Oracle自动授予权限
- 12. Oracle权限授予SQl Plus
- 13. Oracle授予执行权限
- 14. 创建表,并授予权限新用户
- 15. PHP PDO创建MySQL数据库和用户,并授予权限
- 16. 在Oracle中授予“创建目录”权限
- 17. MySQL授予用户权限
- 18. 在Oracle 11g中按角色授予的授权?
- 19. 如何创建用户和授予权限MySql
- 20. 如何授予用户创建#temptables的权限
- 21. 如何授予用户权限
- 22. 我如何向用户授予权限?
- 23. 如何向用户授予权限
- 24. 在SQL Server中创建用户,登录名和授予权限
- 25. 权限授予用户在PostgreSQL中
- 26. 为什么第一次授予用户权限时创建了“授予用法”?
- 27. 授予dbms_crypto权限
- 28. 在Oracle中为用户授予DBA权限
- 29. 将权限授予其他用户
- 30. 如何授权开发人员授予用户权限?
+1,然而,'CONNECT'角色拥有比名称更多的特权。我更愿意授予'CREATE SESSION'。 – 2012-02-25 20:06:42
我使用的版本是11g – Andy5 2012-02-25 20:39:07
[“CONNECT,RESOURCE和DBA这些角色是为了与以前版本兼容而提供的...... Oracle建议您设计自己的数据库安全角色,而不是依赖这些角色。不会由将来版本的Oracle数据库自动创建。“](http://docs.oracle.com/cd/B28359_01/server.111/b28286/statements_9013.htm) – danihp 2013-03-13 19:38:17