

 从补丁 198 开始，Amazon Redshift 将不再支持创建新的 Python UDF。现有的 Python UDF 将继续正常运行至 2026 年 6 月 30 日。有关更多信息，请参阅[博客文章](https://www.amazonaws.cn/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/)。

# PG\_DEFAULT\_ACL
<a name="r_PG_DEFAULT_ACL"></a>

存储有关默认访问权限的信息。有关默认访问权限的更多信息，请参阅 [ALTER DEFAULT PRIVILEGES](r_ALTER_DEFAULT_PRIVILEGES.md)。

PG\_DEFAULT\_ACL 对所有用户可见。超级用户可以查看所有行；普通用户只能查看其自己的数据。有关更多信息，请参阅 [系统表和视图中的数据可见性](cm_chap_system-tables.md#c_visibility-of-data)。

## 表列
<a name="r_PG_DEFAULT_ACL-table-columns2"></a>


| 列名称  | 数据类型  | 描述  | 
| --- | --- | --- | 
| defacluser | integer | 列出的权限所应用于的用户的 ID。 | 
| defaclnamespace | oid  | 默认权限应用于的 schema 的对象 ID。如果未指定 schema，则默认值为 0。 | 
| defaclobjtype | character | 默认权限应用于的对象的类型。有效值如下所示：[See the AWS documentation website for more details](http://docs.amazonaws.cn/redshift/latest/dg/r_PG_DEFAULT_ACL.html) | 
| defaclacl |  aclitem[] | 一个字符串，该字符串定义指定用户或用户组及对象类型的默认权限。<br />如果向用户授予权限，则字符串采用以下格式：<br />*`{ username=privilegestring/grantor } `*<br />*username* <br />向其授予权限的用户的名称。如果忽略 *username*，则将权限授予 PUBLIC。<br />如果向用户组授予权限，则字符串采用以下格式：<br />*`{ "group groupname=privilegestring/grantor" } `*<br />*privilegestring* <br />一个字符串，该字符串指定要授予的权限。<br />有效值为：[See the AWS documentation website for more details](http://docs.amazonaws.cn/redshift/latest/dg/r_PG_DEFAULT_ACL.html)<br />按位掩码位置排序的包含所有权限代码字符的字符串看起来像“arwdRxtXUCTDPA”。<br />*grantor* <br />已授予权限的用户的名称。<br />以下示例指示用户 `admin` 已将所有权限（包括 WITH GRANT OPTION）授予用户 `dbuser`。<pre>dbuser=r*a*w*d*x*X*/admin</pre> | 

## 示例
<a name="r_PG_DEFAULT_ACL-example"></a>

以下查询返回为数据库定义的所有默认权限。

```
select pg_get_userbyid(d.defacluser) as user, 
n.nspname as schema, 
case d.defaclobjtype when 'r' then 'tables' when 'f' then 'functions' end 
as object_type, 
array_to_string(d.defaclacl, ' + ')  as default_privileges 
from pg_catalog.pg_default_acl d 
left join pg_catalog.pg_namespace n on n.oid = d.defaclnamespace;

 user  | schema | object_type |              default_privileges
-------+--------+-------------+-------------------------------------------------------
 admin | tickit | tables      | user1=r/admin + "group group1=a/admin" + user2=w/admin
```

上述示例中的结果表明，对于用户 `admin` 在 `tickit` schema 中创建的所有新表，`admin` 将 SELECT 权限授予 `user1`，将 INSERT 权限授予 `group1`，并将 UPDATE 权限授予 `user2`。