

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

# PG\_GET\_IAM\_ROLE\_BY\_USER
<a name="PG_GET_IAM_ROLE_BY_USER"></a>

返回授予用户的所有 IAM 角色和命令权限。

## 语法
<a name="PG_GET_IAM_ROLE_BY_USER-synopsis"></a>

```
pg_get_iam_role_by_user('name')
```

## 参数
<a name="PG_GET_IAM_ROLE_BY_USER-arguments"></a>

 *名称*   
要返回 IAM 角色的用户的名称。

## 返回类型
<a name="PG_GET_IAM_ROLE_BY_USER-return-type"></a>

VARCHAR 

## 使用说明
<a name="PG_GET_IAM_ROLE_BY_USER-usage-notes"></a>

PG\_GET\_IAM\_ROLE\_BY\_USER 函数为每组角色和命令特权返回一行。该行包含一个逗号分隔列表，其中包括用户名、IAM 角色和命令。

结果中的值 `default` 表示用户可以指定任何可用角色来执行显示的命令。

您必须是超级用户才能使用函数。

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

以下示例指示用户 `reg_user1` 可以指定任何可用的 IAM 角色来执行 COPY 操作。用户也可以指定 `Redshift-S3-Write` 角色进行 UNLOAD 操作。

```
select pg_get_iam_role_by_user('reg_user1');
```

```
                             pg_get_iam_role_by_user
---------------------------------------------------------------------------------
 (reg_user1,default,COPY)
 (reg_user1,arn:aws:iam::123456789012:role/Redshift-S3-Write,COPY|UNLOAD)
```

下面的 PG\_GET\_IAM\_ROLE\_BY\_USER 函数示例将结果格式化为表格。

```
select username, iam_role, cmd FROM pg_get_iam_role_by_user('reg_user1') res_iam_role(username text, iam_role text, cmd text);
```

```
 username  |                    iam_role                     | cmd
-----------+-------------------------------------------------+------
 reg_user1 | default                                         | None
 reg_user1 | arn:aws:iam::123456789012:role/Redshift-S3-Read | COPY
```