

# Babelfish for Aurora PostgreSQL에서 권한 및 액세스 제어 관리
<a name="babelfish-permissions"></a>

 Babelfish for Aurora PostgreSQL에서 데이터베이스, 스키마 및 객체에 대한 권한 및 액세스 제어를 관리할 수 있습니다. 다음 표에는 Babelfish에서 다양한 액세스 제어 시나리오를 달성할 수 있는 권한을 부여하는 특정 SQL 명령이 요약되어 있습니다. 현재 지원되지 않는 사례에 대한 해결 방법뿐만 아니라 구현할 수 있는 지원되는 사용 사례를 다룹니다. 이렇게 하면 Babelfish 데이터베이스로 작업할 때 보안 및 규정 준수 요구 사항에 맞게 적절한 권한을 구성할 수 있습니다.

## 지원되는 사용 사례
<a name="babelfish-permissions-supported"></a>

 다음 표에서는 Babelfish에서 지원되는 사용 사례를 설명합니다. 각 사용 사례에 대해 표에는 이를 달성하는 데 필요한 작업과 샘플 SQL 명령이 나와 있습니다.


|  사용 사례  |  작업  |  SQL 명령  |  설명  |  Babelfish 버전 호환성  | 
| --- | --- | --- | --- | --- | 
|   모든 데이터베이스에서 SELECTs/DMLs/DDLs를 수행하기 위한 로그인 허용   |   sysadmin 서버 역할에 로그인 추가   |   ALTER SERVER ROLE sysadmin ADD MEMBER `login`   |   없음   |   모든 버전   | 
|   데이터베이스에서 SELECTs/DMLs/DDLs를 수행하기 위한 로그인 허용   |   로그인을 데이터베이스의 소유자로 설정   |   ALTER AUTHORIZATION ON DATABASE::`database` TO `login`   |   데이터베이스에는 소유자가 하나만 있을 수 있습니다.  |   버전 3.4 이상   | 
|   데이터베이스 사용자가 스키마에서 SELECTs/DMLs를 수행하도록 허용   |   스키마에서 데이터베이스 사용자에게 권한 부여   |   GRANT SELECT/EXECUTE/INSERT/UPDATE/DELETE ON SCHEMA::`schema` TO `user`   |   없음   |   버전 3.6 이상, 4.2 이상   | 
|   데이터베이스 사용자가 스키마에서 SELECTs/DMLs를 수행하도록 허용   |   스키마 생성 시 스키마의 데이터베이스 사용자 소유자 생성   |   CREATE SCHEMA `schema` AUTHORIZATION `user`   |   만든 후 스키마 소유권 변경은 현재 지원되지 않습니다.  |   버전 1.2 이상   | 
|   데이터베이스 사용자가 객체에서 SELECTs/DMLs를 수행하도록 허용   |   객체의 데이터베이스 사용자에게 권한 부여   |   GRANT SELECT/EXECUTE/INSERT/UPDATE/DELETE ON OBJECT::`object` TO `user`   |   없음   |   모든 버전   | 
|   데이터베이스 사용자가 데이터베이스 삭제를 포함하여 데이터베이스에서 SELECTs/DMLs/DDLs를 수행하도록 허용   |   db\$1owner 고정 데이터베이스 역할에 사용자 추가   |   ALTER ROLE db\$1owner ADD MEMBER `user`   |   db\$1owner 고정 데이터베이스 역할에 사용자만 추가할 수 있습니다. db\$1owner 역할에 역할을 추가하는 것은 아직 지원되지 않습니다.  |   버전 4.5 이상, 5.1 이상   | 
|   사용자 지정 데이터베이스 역할의 사용자 또는 구성원이 데이터베이스에서 SELECT만 수행하도록 허용   |   db\$1datareader 고정 데이터베이스 역할에 사용자 또는 역할 추가   |   ALTER ROLE db\$1datareader ADD MEMBER `user` / `role`   |   없음   |   버전 4.5 이상, 5.1 이상   | 
|   사용자 지정 데이터베이스 역할의 사용자 또는 구성원이 데이터베이스에서 DML만 수행하도록 허용   |   db\$1datawriter 고정 데이터베이스 역할에 사용자 또는 역할 추가   |   ALTER ROLE db\$1datawriter ADD MEMBER `user` / `role`   |   없음   |   버전 4.5 이상, 5.1 이상   | 
|   사용자 지정 데이터베이스 역할의 사용자 또는 구성원이 데이터베이스에서 DDL만 수행하도록 허용   |   db\$1accessadmin 고정 데이터베이스 역할에 사용자 또는 역할 추가   |   ALTER ROLE db\$1accessadmin ADD MEMBER `user` / `role`   |   없음   |   버전 4.5 이상, 5.1 이상   | 
|   사용자 지정 데이터베이스 역할의 사용자 또는 구성원에게 사용자 지정 역할 CREATE/ALTER/DROP, 데이터베이스의 객체에 대한 권한 GRANT/REVOKE 및/또는 데이터베이스의 CREATE SCHEMA만 허용   |   db\$1securityadmin 고정 데이터베이스 역할에 사용자 또는 역할 추가   |   ALTER ROLE db\$1securityadmin ADD MEMBER `user` / `role`   |   없음   |   버전 4.5 이상, 5.1 이상   | 
|   사용자 지정 데이터베이스 역할의 사용자 또는 구성원에게 모든 사용자에 대한 CREATE/ALTER/DROP, 데이터베이스 액세스 권한 부여 또는 취소, 로그인에 사용자 계정 매핑 및/또는 데이터베이스에서의 CREATE SCHEMA만 허용   |   db\$1accessadmin 고정 데이터베이스 역할에 사용자 또는 역할 추가   |   ALTER ROLE db\$1accessadmin ADD MEMBER `user` / `role`   |   없음   |   버전 4.5 이상, 5.1 이상   | 
|   로그인에 모든 데이터베이스에 대한 CREATE/DROP/ALTER만 허용   |   dbcreator 고정 서버 역할에 로그인 추가   |   ALTER SERVER ROLE dbcreator ADD MEMBER `login`   |   dbcreator 로그인이 액세스할 수 있는 데이터베이스만 변경할 수 있습니다.  |   버전 4.5 이상, 5.1 이상   | 
|   로그인에 모든 로그인에 대한 CREATE/ALTER/DROP만 허용   |   securityadmin 고정 서버 역할에 로그인 추가   |   ALTER SERVER ROLE securityadmin ADD MEMBER `login`   |   없음   |   버전 4.5 이상, 5.1 이상   | 

## 지원되지 않는 사용 사례 및 해결 방법
<a name="babelfish-permissions-unsupported"></a>

 다음 표에서는 Babelfish에서 지원되지 않지만 해결 방법을 사용하여 달성할 수 있는 사용 사례를 설명합니다.


|  사용 사례  |  작업  |  SQL 명령  |  설명  |  해결 방법을 위한 Babelfish 버전 호환성  | 
| --- | --- | --- | --- | --- | 
|   다른 사용자에게 이러한 권한을 GRANT하는 옵션과 함께 사용자가 객체/스키마에 SELECT/DML을 수행하도록 허용   |   다른 모든 사용자에게 직접 권한 GRANT   |   GRANT SELECT/EXECUTE/INSERT/UPDATE/DELETE ON OBJECT/SCHEMA::`object`/`schema` TO `user`   |   GRANT ... WITH GRANT OPTION은 현재 지원되지 않습니다.  |   버전 3.6 이상, 4.2 이상   | 
|   데이터베이스 사용자가 데이터베이스 삭제를 포함하여 데이터베이스에서 SELECTs/DMLs/DDLs를 수행하도록 허용   |   db\$1owner 고정 데이터베이스 역할에 역할 구성원 추가   |   ALTER ROLE db\$1owner ADD MEMBER `user`   |   db\$1owner 역할에 역할 추가는 현재 지원되지 않습니다.  |   버전 4.5 이상, 5.1 이상   | 

## 지원되는 사용 사례
<a name="babelfish-permissions-unsupported"></a>

 다음 표에서는 Babelfish에서 지원되지 않는 사용 사례를 설명합니다.


|  사용 사례  |  설명  | 
| --- | --- | 
|  사용자 지정 데이터베이스 역할의 사용자 또는 구성원이 데이터베이스에서 SELECT를 수행하지 못하도록 거부   |   db\$1denydatareader 고정 데이터베이스 역할은 아직 지원되지 않습니다.  | 
|  사용자 지정 데이터베이스 역할의 사용자 또는 구성원이 데이터베이스에서 DML을 수행하지 못하도록 거부   |   db\$1denydatawriter 고정 데이터베이스 역할은 현재 지원되지 않습니다.  | 
|  로그인에 모든 데이터베이스 연결에 대한 KILL만 허용   |   processadmin 고정 서버 역할은 현재 지원되지 않습니다.  | 
|  로그인에 연결된 서버 추가 또는 제거만 허용   |   setupadmin 고정 서버 역할은 현재 지원되지 않습니다.  | 