

# 限制
<a name="babelfish-kerberos-securityad-limitations"></a>
+ 转储/还原实用程序不支持转储 pg\$1ad\$1mapping 扩展映射。还原后，您将需要重新创建这些映射。
+ 具有 `pg_ad_mapping` 的 Babelfish 和 Aurora PostgreSQL 实例不支持蓝绿部署。
+ 不支持隐式架构创建。不支持需要隐式架构创建的 DDL 语句。
+ 当单独的 Windows 登录名不存在而只有组 Windows 登录名存在时，在经组 AD 身份验证的会话中不支持服务器级 DDL ALTER AUTHORIZATION ON DATABASE、CREATE DATABASE、CREATE LOGIN、ALTER LOGIN、ALTER SERVER ROLE、ALTER DATABASE。要解决此限制，建议在经密码验证身份的会话中执行这些操作或创建单独的 Windows 登录名。
+ 不支持隐式用户创建。理想的 T-SQL 行为 [Babelfish 尚不支持]；在某些情况下，例如 DDL 和访问控制语句（如 GRANT/REVOKE），此时在命令中指定了 AD 用户的名称，但该用户在数据库中不存在，则会隐式创建名为 AD 用户的数据库用户。
+ 对于 PL/pgSQL 过程或函数中的 DDL（它们在经组 AD 身份验证的会话中从 PSQL 端点创建并从 TDS 端点执行）：
  + 将支持 ALTER/DROP 语句。
  + 如果未显式提供架构且当前会话的默认架构为 null，则 CREATE TABLE、CREATE VIEW、CREATE INDEX、CREATE FUNCTION/PROC、CREATE TYPE、CREATE SEQUENCE、CREATE TRIGGER、SELECT INTO、CREATE FULLTEXT INDEX、CREATE UNIQUE INDEX 将引发错误。
  + 对于 PG（不在 T-SQL 中）特定对象 CREATE 订阅、CREATE 表空间、CREATE 策略、CREATE 转换，将不支持 CREATE DATABASE、CREATE EXTENSION 和所有其它 CREATE 语句。
+ 经组 AD 身份验证的会话不支持来自 PostgreSQL 端点的 DDL。作为一种解决方法，您始终可以使用主用户或任何使用基于密码的身份验证机制的其它用户进行连接。
+ 像 SUSER\$1SID()、IS\$1SRVROLEMEMBER()、IS\$1MEMBER()、sys.dm\$1exec\$1sessions 这样的系统对象具有以下限制。
  + 提供 AD 用户或 AD 安全组时，SUSER\$1SID() 不会返回 SID。
  + 如果当前 AD 用户从任何 Windows 组登录名的服务器角色成员资格继承服务器角色成员资格，则 IS\$1SRVROLEMEMBER() 将不考虑角色成员资格。
  + 对于任何与 Windows 组相关的查询，IS\$1MEMBER() 都将返回 false。
  + sys.dm\$1exec\$1sessions 不会显示预期值 login\$1name、nt\$1user\$1name 列。