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 대문자로 변환되고 몇 가지 제한 사항이 적용되는 일반 식별자 대신 사용됩니다.할당량은 다음과 같습니다.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;
결국 새 사용자로 연결됩니다.
또한 기본 프로필을 변경하거나 다른 프로필을 제공하여 암호 만료 기간, 허용된 로그인 실패 횟수 등과 같은 일부 설정을 사용자 지정할 수 있습니다.
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
'programing' 카테고리의 다른 글
PHP가 Excel을 데이터베이스로 가져오기(xls & xlsx) (0) | 2023.05.25 |
---|---|
스택에 대한 Git diff. (0) | 2023.05.25 |
Git 프로젝트의 'bin' 디렉터리 무시 (0) | 2023.05.25 |
로그인 시 ssh-agent 시작 (0) | 2023.05.25 |
mongodb에서 고유 객체 ID를 생성하는 방법 (0) | 2023.05.25 |