programing

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

showcode 2023. 5. 25. 22:12
반응형

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

오라클 11g에서 사용자를 생성하고 해당 사용자에게 특정 저장 프로시저 하나와 해당 프로시저의 테이블만 실행할 수 있는 권한을 부여하는 방법에 대해 누가 알려줄 수 있습니까?

어떻게 해야 할지 잘 모르겠어요!

시스템으로 연결합니다.

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 절에 적용됩니다.기본값은 definer(즉, 절차 소유자)입니다.AUTHID가 CURRENT_USER(인보커, 즉 새 사용자)로 설정된 경우에만 절차에서 사용하는 개체에 대한 권한을 부여해야 합니다.자세히 알아보세요.

TEST 및 PROD와 같은 중요한 환경에서는 이러한 접근 방식을 사용하지 마십시오.아래 단계는 로컬 환경에 권장되는 것입니다.로컬 호스트의 경우 다음 단계를 통해 사용자를 생성합니다.

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

 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

편집: 오라클 또는 a-28001에 대한 문제가 발생할 경우 암호가 만료되어 유용하게 실행될 수 있습니다.

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

번 했듯이, 앞댓에여번것언처럼급한, 법은용사러글의 CONNECT,RESOURCE그리고.DBA역할이 Oracle에 의해 중단되었습니다.

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

유닉스에서는 따옴표를 이스케이프해야 하며 그렇지 않으면 셸에서 따옴표를 소비합니다.따라서" 되다\".

.MYROLE다른 역할이나 권한을 부여합니다.로운 것을 거의 의 것을 했습니다: 는흥미로것을하저기위해거다의추것니습가했을최의소한운▁i다저▁nearly▁to니▁added.

create role myrole not identified;
grant create session to myrole;
grant alter session to myrole;
grant create table to myrole;

사용자를 .MYUSER 뒤에 오는 identified by암호는 대소문자를 구분합니다.나머지는 그렇지 않습니다.따옴표로 SQL " " " " " " " " " 를 할 수 ."몇 가지 제한 대신 사용됩니다.는 tu 대문자로 변환되고 몇 가지 제한 사항이 적용되는 일반 식별자 대신 사용됩니다.할당량은 다음과 같습니다.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-permissions-in-oracle/

첫 번째 단계:

Connect to a database using System/Password;

두 번째 단계:

암호로 식별된 사용자 이름 생성; (계속)

Ex: create user manidb idntified by mypass;

세 번째 단계:

연결 허용, 사용자 이름에 대한 리소스; ( 구문)

Ex: grant connect,resource to manidb;

  • 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;

언급URL : https://stackoverflow.com/questions/9447492/how-to-create-a-user-in-oracle-11g-and-grant-permissions

반응형