Azure SQL Database for PostgreSQL에서 권한 부여
사용자가 Azure Database for PostgreSQL 서버에서 호스트되는 데이터베이스에 액세스하도록 허용하려면 역할(사용자)을 만들어 데이터베이스 개체에 권한을 부여하거나 거부해야 합니다.
Azure Database for PostgreSQL에서 데이터베이스 사용자 만들기
Azure Data Studio(또는 선호하는 클라이언트 도구)에서 관리자 로그인 자격 증명을 사용하여 Azure Database for PostgreSQL 서버에 연결합니다.
관련 데이터베이스를 현재 데이터베이스로 지정한 상태에서
CREATE ROLE
을(를) 관련 옵션과 함께 사용하여 새 역할(사용자)을 만듭니다.예를 들어 다음 쿼리는 다음 작업을 수행합니다.
- testdb라는 새 데이터베이스를 만듭니다.
- 강력한 암호를 사용하여 새 사용자를 만듭니다.
- testdb 데이터베이스에 연결 권한을 부여합니다.
CREATE DATABASE testdb; CREATE ROLE <db_user> WITH LOGIN NOSUPERUSER INHERIT CREATEDB NOCREATEROLE NOREPLICATION PASSWORD '<StrongPassword!>'; GRANT CONNECT ON DATABASE testdb TO <db_user>;
쿼리를 시도하려면 자리 표시자를 자신의 사용자 정보로 바꿀 수 있습니다.
그런 다음 데이터베이스 내의 개체에 더 많은 권한을 부여할 수 있습니다. 예시:
GRANT SELECT ON ALL TABLES IN SCHEMA <schema_name> TO <db_user>;
CREATE ROLE의 구문은 다음과 같습니다.
CREATE ROLE name [ [ WITH ] option [ ... ] ]
여기서 옵션은 다음과 같습니다.
SUPERUSER | NOSUPERUSER
| CREATEDB | NOCREATEDB
| CREATEROLE | NOCREATEROLE
| INHERIT | NOINHERIT
| LOGIN | NOLOGIN
| REPLICATION | NOREPLICATION
| BYPASSRLS | NOBYPASSRLS
| CONNECTION LIMIT connlimit
| [ ENCRYPTED ] PASSWORD 'password' | PASSWORD NULL
| VALID UNTIL 'timestamp'
| IN ROLE role_name [, ...]
| ROLE role_name [, ...]
| ADMIN role_name [, ...]
선택적 매개 변수는 다음과 같습니다.
- SUPERUSER | NOSUPERUSER - Azure Database for PostgreSQL 내에서 SUPERUSER 권한을 할당할 수 없습니다. 지정하지 않으면 NOSUPERUSER가 기본값입니다.
- CREATEDB | NOCREATEDB - 역할이 데이터베이스를 만들 수 있는지 여부입니다. NOCREATEDB가 기본값입니다.
- CREATEROLE | NOCREATEROLE - 역할이 새 역할을 만들 수 있는지, 즉 CREATE ROLE을 실행할 수 있는지 여부를 나타냅니다. CREATEROLE 권한이 부여된 역할은 다른 역할을 변경하고 삭제할 수도 있습니다. NOCREATEROLE이 기본값입니다.
- INHERIT | NOINHERIT - 역할이 직접 또는 간접 멤버인 역할의 권한을 상속하는지 여부입니다. INHERIT가 기본값입니다.
- LOGIN | NOLOGIN - 역할에 로그인이 허용되는지 여부를 나타냅니다. LOGIN 특성이 있는 역할은 데이터베이스 사용자입니다. LOGIN 특성이 없는 역할은 데이터베이스 권한을 관리하는 데 사용될 수 있습니다. NOLOGIN이 기본값입니다.
- REPLICATION | NOREPLICATION - 역할이 복제 역할인지 여부입니다. 복제 모드에서 서버에 연결하고 복제 슬롯을 만들거나 삭제하려면 역할에 이 특성이 있어야 합니다. REPLICATION 특성은 복제에만 사용해야 하는 권한 있는 역할입니다. NOREPLICATION이 기본값입니다. 이 역할을 만들려면 azure_pg_admin의 멤버여야 합니다.
- BYPASSRLS | NOBYPASSRLS - 역할이 모든 RLS(행 수준 보안) 정책을 우회하는지 여부입니다.
- CONNECTION LIMIT connlimit - 로그인할 수 있는 역할이 만들 수 있는 동시 연결 수를 지정합니다. -1이 기본값입니다. 이 매개 변수는 동시 연결에 제한을 두지 않습니다.
- [ ENCRYPTED ] PASSWORD 'password'| PASSWORD NULL - 역할의 암호를 설정합니다. 암호는 LOGIN 특성이 있는 역할에서만 사용됩니다. 암호를 지정하지 않으면 암호는 NULL이 되고 암호 인증이 실패합니다. 또는 명시적으로 PASSWORD NULL을 지정합니다.
- VALID UNTIL 'timestamp'- 역할의 암호가 만료되는 날짜 및 시간입니다. 생략하면 암호에 시간 제한이 없습니다.
- IN ROLE role_name - 새 역할이 새 멤버로 추가되는 하나 이상의 역할입니다. 새 역할을 관리자 권한으로 추가하는 옵션은 없습니다. GRANT 명령을 사용합니다.
- IN GROUP role_name IN ROLE에 대한 사용되지 않는 대안입니다.
- ROLE role_name - 하나 이상의 역할이 새 역할의 멤버로 추가됩니다. (이러한 변경으로 인해 새 역할이 그룹이 됩니다.)
- ADMIN role_name - ADMIN 절은 ROLE과 비슷하지만 명명된 역할은 새 역할 WITH ADMIN OPTION에 추가되어 다른 사용자에게 이 역할의 멤버 자격을 부여할 수 있는 권한을 부여합니다.
참고
ALTER ROLE을 사용하여 역할의 특성을 변경하고 DROP ROLE을 사용하여 역할을 제거할 수 있습니다.