我正在使用带有 executeStatement 的 boto3 库来使用 DATA API 从 RDS 集群获取数据。如果我选择 1 或 2 列,查询工作正常,但只要我选择另一列进行查询,它就会返回错误(BadRequestException) permission denied for relation table_name
我已经使用 pgadmin 检查了权限是否完整,可以为我正在使用的用户查询整个数据库。
调用中包含的函数:
def execute_query(self, sql_query, sql_parameters=[]):
"""
Aurora DataAPI execute query. Generally used for select statements.
:param sql_query: Query
:param sql_parameters: parameters in sql query
:return: DataApi response
"""
client = self.api_access()
response = client.execute_statement(
resourceArn=RESOURCE_ARN,
secretArn=SECRET_ARN,
database='db_name',
sql=sql_query,
includeResultMetadata=True,
parameters=sql_parameters)
return response
函数调用:没有错误
query = '''
SELECT id
FROM schema_name.table_name
limit 1
'''
print(query)
result = conn.execute_query(query)
print(result)
函数调用:因上述错误而失败
query = '''
SELECT id,name,event
FROM schema_name.table_name
limit 1
'''
print(query)
result = conn.execute_query(query)
print(result)
使用 Boto3 从 DATA API 获得的内容是否存在水平限制?我知道有 1MB 的限制,但如果超过限制,它应该根据文档返回一些内容。
后端是Postgres RDS
更新: 我可以选择相同的列 10 次,这不是问题
query = '''
SELECT id,event,event,event,event,event
FROM schema_name.table_name
limit 1
'''
print(query)
result = conn.execute_query(query)
print(result)
所以这意味着有些列我无法选择。