[oracle] Oracle 11g에서 사용자를 생성하고 권한을 부여하는 방법

누군가 Oracle 11g에서 사용자를 만드는 방법에 대해 조언하고 해당 사용자에게 특정 저장 프로 시저와 해당 프로 시저의 테이블 만 실행할 수있는 권한 만 부여 할 수 있습니까?

이 작업을 수행하는 방법을 잘 모르겠습니다!



답변

SYSTEM으로 연결합니다.

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에서 사용자를 생성하려면 아래 단계를 따르십시오.
-시스템 사용자로 연결

CONNECT <USER-NAME>/<PASSWORD>@<DATABASE NAME>;

-사용자 쿼리 생성

CREATE USER <USER NAME> IDENTIFIED BY <PASSWORD>;

-역할 제공

GRANT CONNECT,RESOURCE,DBA TO <USER NAME>;

-특권 제공

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 설명서는 포괄적이고 온라인이며 무료입니다. 그것을 사용하는 법을 배워야합니다. 여기 에서 CREATE USER에 대한 구문 과 여기 에서 GRANT에 대한 구문을 찾을 수 있습니다 .

데이터베이스에 연결하려면 사용자 에게 CREATE SESSION 권한 을 부여해야합니다 .

저장 프로 시저에 대한 새 사용자 권한을 허용하려면 EXECUTE 권한을 부여해야합니다. 부여자는 다음 중 하나 여야합니다.

  • 절차 소유자
  • WITH ADMIN 옵션을 사용하여 해당 프로 시저에서 실행 권한이 부여 된 사용자
  • GRANT ANY OBJECT 권한이있는 사용자
  • DBA 또는 기타 슈퍼 유저 계정.

일반적으로 프로 시저를 사용하기 위해 저장 프로 시저에서 사용하는 개체에 대한 권한을 부여 할 필요는 없습니다. 기본 권한은 프로 시저 소유자와 동일한 권한으로 프로 시저를 실행하고 프로 시저 실행시 권한을 상속하는 것입니다. 이것은 AUTHID 절에 의해 다루어집니다. 기본값은 정의 자 (예 : 프로 시저 소유자)입니다. AUTHID가 CURRENT_USER (호출자, 즉 새 사용자)로 설정된 경우에만 프로 시저에서 사용하는 개체에 대한 권한을 부여해야합니다. 자세히 알아보십시오 .


답변

TEST 및 PROD와 같은 중요한 환경에서는 이러한 접근 방식을 사용하지 마십시오. 아래 단계는 로컬 환경을 위해 제안됩니다. 내 로컬 호스트의 경우 다음 단계를 통해 사용자를 만듭니다.

중요 참고 : SYSTEM 사용자 자격 증명으로 사용자를 생성하십시오 . 그렇지 않으면 동일한 데이터베이스에서 여러 응용 프로그램을 실행할 때 문제가 발생할 수 있습니다.

 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

편집 : oracle ora-28001에 대한 문제가 발생하면 암호가 만료 된 경우에도 유용 할 수 있습니다.

select * from dba_profiles;-- check PASSWORD_LIFE_TIME 
ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED; -- SET IT TO UNLIMITED


답변

이전에 주석에서 여러 번 언급했듯이 Oracle은 CONNECT, RESOURCEDBA역할 의 사용을 권장하지 않습니다.

역할과이 역할이 부여 된 사용자를 생성하려면 SYS로 연결해야합니다. 원하는대로 SQL Developer 또는 SQL * Plus를 사용할 수 있습니다. 로그온 문자열에서 SYSDBA 역할을 언급하는 것을 잊지 마십시오. 는 connect_identifier다른 구문을 사용합니다.

sqlplus sys/<<password>>@<<connect_identifier>> as sysdba

Oracle Technology Network Developer Day ” 에서 VM으로 제공된 것과 같은 12cR1이 있다고 가정 해 보겠습니다 . 연결 문자열은 (제공된 PDB에 연결하기 위해) 다음과 같을 수 있습니다.

sqlplus sys/oracle@127.0.0.1/orcl as sysdba
sqlplus sys@"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비밀번호 문자열 은 대소 문자를 구분합니다. 나머지는 그렇지 않습니다. "tu 대문자로 변환되고 몇 가지 제한 사항이 적용되는 일반 식별자 대신 SQL 구분 식별자 (따옴표로 묶음 )를 사용할 수도 있습니다 . 할당량 unlimited20m.

create user myuser identified by myuser default tablespace users profile default account unlock;
alter user myuser quota 20m on users;
grant myrole to myuser;

결국 새로운 사용자로 연결됩니다.

기본 프로필을 변경하거나 다른 프로필을 제공하여 암호 만료 기간, 허용 된 로그인 시도 횟수 등의 일부 설정을 사용자 지정할 수도 있습니다.


답변

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


답변

CREATE USER books_admin IDENTIFIED BY MyPassword;
GRANT CONNECT TO books_admin;
GRANT CONNECT, RESOURCE, DBA TO books_admin;
GRANT CREATE SESSION GRANT ANY PRIVILEGE TO books_admin;
GRANT UNLIMITED TABLESPACE TO books_admin;
GRANT SELECT, INSERT, UPDATE, DELETE ON schema.books TO books_admin;

https://docs.oracle.com/cd/B19306_01/network.102/b14266/admusers.htm#i1006107
https://chartio.com/resources/tutorials/how-to-create-a-user-and-grant -오라클 내 권한 /