使用bq add-iam-policy-binding命令传递参数时遇到的问题
bq add-iam-policy-binding命令传递参数时遇到的问题
嗨,我来帮你排查这个问题!你遇到的这个报错其实是多写了--condition=None这一行导致的,和你试的--member、--role的参数格式没关系~
问题根源
bq的命令行解析逻辑里,当你不需要给IAM绑定添加生效条件时,完全不需要加--condition参数,更不能给它赋值None。当你加上--condition=None后,命令解析器出现了参数解析冲突,错误地把你前面明明传了值的--member和--role识别成了None,这才抛出了那个让人困惑的错误。
解决办法
直接删掉--condition=None这一行,用下面的命令就能正常执行了:
bq add-iam-policy-binding <PROJECT>:<DATASET>.<TABLE> \ --member='user:<EMAIL>' \ --role='roles/bigquery.dataViewer'
补充说明
如果你之后需要给这个IAM绑定添加生效条件(比如限定权限的生效时间、资源范围等),才需要使用--condition参数,正确的格式示例如下:
--condition="expression=resource.name.startsWith('projects/my-project/datasets/my-dataset'),title=my-condition"
而不是给它赋值None。另外你尝试的几种--member参数格式(比如--member 'user:<EMAIL>'或者--member=user:<EMAIL>)本身是没问题的,不用纠结这个点~
备注:内容来源于stack exchange,提问作者Kossak
相关产品推荐
相关产品推荐

