2012-02-25 170 views

回答

80

以系統連接。

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; 

取其表的過程使用。

+6

+1,然而,'CONNECT'角色擁有比名稱更多的特權。我更願意授予'CREATE SESSION'。 – 2012-02-25 20:06:42

+0

我使用的版本是11g – Andy5 2012-02-25 20:39:07

+2

[「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

21

Oracle文檔全面,在線且免費。你應該學會使用它。你可以找到CREATE USER hereGRANT here的語法,

爲了連接數據庫,我們需要授予用戶the CREATE SESSION privilege

要允許存儲過程的新用戶權限,我們需要授予EXECUTE特權。讓與人必須是這些中的一個:

  • 過程所有者
  • 授予用戶對程序與執行WITH ADMIN選項
  • 與授予用戶的任何對象特權
  • DBA或其他超級用戶帳戶。

請注意,我們通常不需要授予存儲過程使用的對象的權限,以便使用該過程。默認權限是我們執行與程序所有者相同權限的程序,並且在執行程序時繼承權限。這由AUTHID子句覆蓋。默認值是定義者(即過程所有者)。只有當AUTHID設置爲CURRENT_USER(調用者,即我們的新用戶)時,我們是否需要授予該過程使用的對象的權限。 Find out more

2
CREATE USER USER_NAME IDENTIFIED BY PASSWORD; 
GRANT CONNECT, RESOURCE TO USER_NAME; 
+1

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

22

按照以下步驟在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>; 
+0

在Oracle 11g中,它是「grant dba」還是「grand sysdba」? – jondinham 2014-09-09 02:59:57

+2

ORA-00990:'授予創建會話授予任何特權至的權限缺失或無效';' – 2014-11-14 13:02:18

+3

在會話後應該有一個逗號 – 2014-12-12 19:36:56

-4
  • 步驟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;

+1

'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

9

不要使用像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 
+2

'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

4

在評論如前所述多次使用CONNECTRESOURCEDBA角色由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版本數等