簡體   English   中英

RDSdataService execute_statement 返回 (BadRequestException)

[英]RDSdataService execute_statement returns (BadRequestException)

我正在使用帶有 executeStatement 的 boto3 庫來使用 DATA API 從 RDS 集群獲取數據。 如果我 select 1 或 2 列,查詢工作正常,但只要我 select 另一列要查詢,它返回一個錯誤, (BadRequestException) permission denied for relation table_name

我已經使用 pgadmin 檢查了權限是否完整,可以為我正在使用的用戶查詢整個數據庫。

function 包含在調用中:

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

function 調用:沒有錯誤

    query = '''
        SELECT id
        FROM schema_name.table_name
        limit 1

    ''' 
    print(query)
    result = conn.execute_query(query)
    print(result)

function 調用:失敗並出現上述錯誤

    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

更新:我可以 select 相同的列 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)

所以這意味着有些列我不能 select。

我不知道某些表中存在列級安全性。 如果您正在使用的用戶在 postgres 中有列級證券,那很明顯我不能 select 這些列。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM