

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 在 Babelfish for Aurora PostgreSQL 中管理許可和存取控制
<a name="babelfish-permissions"></a>

 在 Babelfish for Aurora PostgreSQL 中，您可以管理資料庫、結構描述和物件的許可和存取控制。下表將概述特定 SQL 命令，這些命令適用於在 Babelfish 中授予許可以實現各種存取控制案例。其中涵蓋可實作的支援使用案例，以及目前不支援案例的解決方法。這可讓您在處理 Babelfish 資料庫時設定適當的許可，以符合安全和合規要求。

## 支援的使用案例
<a name="babelfish-permissions-supported"></a>

 下表說明 Babelfish 中支援的使用案例。對於每個使用案例，資料表會顯示實現該案例所需的動作和範例 SQL 命令。


|  使用案例  |  Action  |  SQL 命令  |  說明  |  Babelfish 版本相容性  | 
| --- | --- | --- | --- | --- | 
|  允許登入在任何資料庫中執行 SELECT/DML/DDL  |  將登入新增至 sysadmin 伺服器角色  |  ALTER SERVER ROLE sysadmin ADD MEMBER `login`  |  無  |  所有版本  | 
|  允許登入在資料庫中執行 SELECT/DML/DDL  |  讓登入成為資料庫擁有者  |  ALTER AUTHORIZATION ON DATABASE::`database` TO `login`  |  資料庫只能有一個擁有者。 |  3.4 版及更新版本  | 
|  允許資料庫使用者對結構描述執行 SELECT/DML  |  將許可授予結構描述上的資料庫使用者  |  GRANT SELECT/EXECUTE/INSERT/UPDATE/DELETE ON SCHEMA::`schema` TO `user`  |  無  |  3.6 版及更新版本，4.2 版及更新版本  | 
|  允許資料庫使用者對結構描述執行 SELECT/DML  |  讓資料庫使用者在結構描述建立時成為結構描述擁有者  |  CREATE SCHEMA `schema` AUTHORIZATION `user`  |  目前不支援在建立後變更結構描述擁有權。 |  1.2 版及更新版本  | 
|  允許資料庫使用者對物件執行 SELECT/DML  |  將許可授予物件上的資料庫使用者  |  GRANT SELECT/EXECUTE/INSERT/UPDATE/DELETE ON OBJECT::`object` TO `user`  |  無  |  所有版本  | 
|  允許資料庫使用者在資料庫 (包括捨棄資料庫) 中執行 SELECT/DML/DDL  |  將使用者新增至 db\_owner 固定資料庫角色  |  ALTER ROLE db\_owner ADD MEMBER `user`  |  只能夠將使用者新增至 db\_owner 固定資料庫角色。尚不支援將角色新增至 db\_owner 角色。 |  4.5 版及更新版本，5.1 版及更新版本  | 
|  允許自訂資料庫角色的使用者或成員只在資料庫中執行 SELECT  |  將使用者或角色新增至 db\_datareader 固定資料庫角色  |  ALTER ROLE db\_datareader ADD MEMBER `user` / `role`  |  無  |  4.5 版及更新版本，5.1 版及更新版本  | 
|  允許自訂資料庫角色的使用者或成員只在資料庫中執行 DML  |  將使用者或角色新增至 db\_datawriter 固定資料庫角色  |  ALTER ROLE db\_datawriter ADD MEMBER `user` / `role`  |  無  |  4.5 版及更新版本，5.1 版及更新版本  | 
|  允許自訂資料庫角色的使用者或成員只在資料庫中執行 DDL  |  將使用者或角色新增至 db\_accessadmin 固定資料庫角色  |  ALTER ROLE db\_accessadmin ADD MEMBER `user` / `role`  |  無  |  4.5 版及更新版本，5.1 版及更新版本  | 
|  允許自訂資料庫角色的使用者或成員僅使用 CREATE/ALTER/DROP 自訂角色、資料庫中物件的 GRANT/REVOKE 許可和/或資料庫中的 CREATE SCHEMA  |  將使用者或角色新增至 db\_securityadmin 固定資料庫角色  |  ALTER ROLE db\_securityadmin ADD MEMBER `user` / `role`  |  無  |  4.5 版及更新版本，5.1 版及更新版本  | 
|  允許自訂資料庫角色的使用者或成員僅對任何使用者進行 CREATE/ALTER/DROP、授予和撤銷資料庫存取權，以及將使用者帳戶對應至登入，和/或在資料庫中進行 CREATE SCHEMA  |  將使用者或角色新增至 db\_accessadmin 固定資料庫角色  |  ALTER ROLE db\_accessadmin 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 中不支援，但可使用解決方法達成的使用案例。


|  使用案例  |  Action  |  SQL 命令  |  說明  |  Babelfish 版本的解決方法相容性  | 
| --- | --- | --- | --- | --- | 
|  允許使用者對物件/結構描述執行 SELECT/DML，以及將這些許可 GRANT 其他使用者的選項  |  直接將許可 GRANT 所有其他使用者  |  GRANT SELECT/EXECUTE/INSERT/UPDATE/DELETE ON OBJECT/SCHEMA::`object`/`schema` TO `user`  |  GRANT ... 目前不支援 WITH GRANT OPTION。 |  3.6 版及更新版本，4.2 版及更新版本  | 
|  允許資料庫使用者在資料庫 (包括捨棄資料庫) 中執行 SELECT/DML/DDL  |  將角色成員新增至 db\_owner 固定資料庫角色  |  ALTER ROLE db\_owner ADD MEMBER `user`  |  目前不支援將角色新增至 db\_owner 角色。 |  4.5 版及更新版本，5.1 版及更新版本  | 

## 不支援的使用案例
<a name="babelfish-permissions-unsupported"></a>

 下表說明 Babelfish 中不支援的使用案例。


|  使用案例  |  說明  | 
| --- | --- | 
| 拒絕自訂資料庫角色的使用者或成員在資料庫中執行 SELECT  |  尚不支援 db\_denydatareader 固定資料庫角色  | 
| 拒絕自訂資料庫角色的使用者或成員在資料庫中執行 DML  |  目前不支援 db\_denydatawriter 固定資料庫角色。 | 
| 允許登入，以僅對任何資料庫連線進行 KILL  |  目前不支援 processadmin 固定伺服器角色。 | 
| 允許登入，以僅新增或移除連結的伺服器  |  目前不支援 setupadmin 固定伺服器角色。 | 