Autorização - AWS Orientação prescritiva

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Autorização

No processo de autorização, o gerente do banco de dados obtém informações sobre o ID de autorização do usuário autenticado. O ID de autorização indica quais operações de banco de dados o usuário pode realizar, incluindo quais objetos de banco de dados o usuário pode acessar. As permissões, que são declaradas explicitamente no Db2, permitem que os usuários realizem ações específicas.

Para uma ID de autorização, as permissões podem ser concedidas em vários níveis:

  • Primário — As permissões primárias são concedidas diretamente ao ID de autorização.

  • Secundário — Permissões secundárias são concedidas aos grupos e funções dos quais o ID de autorização é membro.

  • Público — O nível público é um grupo especial do Db2 que representa todos na organização.

  • Sensível ao contexto — Essas permissões são concedidas a uma função de contexto confiável.

Níveis de autoridade do Db2

O Db2 gerencia autoridades nos seguintes níveis:

  • Nível da instância ou sistema:SYSADM,SYSCTRL,SYSMAINT, SYSMON

    • Nível do banco de dados: DBADM SQLADM ((EXPLAINWLMADM),), SECADM (ACCESSCTRL), DATAACCESS

      • Nível do esquema: SCHEMAADM (LOAD)ACCESSCTRL, DATAACCES S

      • Privilégios adicionais em nível de esquema

Database privilege levels hierarchy showing instance, database, and schema levels with associated permissions.

O Db2 oferece suporte aos seguintes privilégios adicionais em nível de esquema:

  • SELECTINpermite que o usuário recupere linhas de todas as tabelas ou visualizações definidas no esquema.

  • INSERTINpermite que o usuário insira linhas e execute o IMPORT utilitário em todas as tabelas ou visualizações definidas no esquema.

  • UPDATEINpermite que o usuário execute a Update instrução em todas as tabelas ou visualizações atualizáveis definidas no esquema.

  • DELETEINpermite que o usuário exclua linhas de todas as tabelas ou visualizações atualizáveis definidas no esquema.

  • EXECUTEINpermite que o usuário execute todas as funções, métodos, procedimentos, pacotes ou módulos definidos no esquema.

  • CREATEINpermite que o usuário crie objetos dentro do esquema.

  • ALTERINpermite que o usuário altere objetos dentro do esquema.

  • DROPINpermite que o usuário solte objetos de dentro do esquema.

ID de autorização

Um ID de autorização do Db2 consiste no seguinte:

  • Tipo de ID de autorização

    • Usuário individual (U)

    • Grupo (G)

    • Função (R)

    • Público (P)

  • Valor da ID de autorização

Uma ID de autorização, à qual as autoridades e os privilégios podem ser associados, é usada para identificação junto com a verificação da autorização do Db2.

A seguir estão os termos de ID de autorização primária comumente usados no Db2:

  • ID de autorização do sistema — A ID de autorização usada para fazer qualquer verificação de autorização inicial, como verificar o CONNECT privilégio durante o CONNECT processamento.

  • ID de autorização de sessão — A ID de autorização usada para qualquer verificação de autorização de sessão posterior às verificações iniciais realizadas durante o CONNECT processamento. Para ver o valor atual do ID de autorização da sessão, use o registro SESSION_USER especial.

  • ID de autorização da declaração — A ID de autorização (junto com a autorização secundária associada IDs para grupos ou funções) usada para os requisitos de autorização de uma instrução SQL. Isso também é usado para determinar a propriedade do objeto, conforme aplicável. Ela pode variar dependendo do tipo de instrução SQL e do contexto em que ela é emitida.

Autoridades e privilégios são adquiridos por meio de mecanismos explícitos, como REVOKE declarações GRANT e declarações, ou mecanismos implícitos, como o privilégio obtido por meio da propriedade de objetos. Eles também podem ser adquiridos temporariamente por meio de vários contextos de processamento. Por exemplo, você recebeu acesso a uma visualização, o que implicitamente lhe dá acesso aos objetos nessa definição de visualização. Além disso, um EXECUTE privilégio em um pacote lhe dará acesso a qualquer SQL estático nesse pacote. A outra forma de obter autoridade e privilégios temporários é usando contexto confiável.

Contexto confiável

Um contexto confiável é um objeto de banco de dados que define uma relação de confiança entre o banco de dados e um servidor de aplicativos externo ou outro servidor de banco de dados. A relação de confiança é baseada nos seguintes atributos de confiança:

  • Endereço IP

  • ID de autorização do sistema

  • Nível de criptografia para comunicação de dados

Se uma conexão corresponder aos atributos de confiança em um objeto de contexto confiável definido, uma conexão confiável será estabelecida. Há dois tipos de conexão confiável:

  • Conexão confiável implícita — Uma conexão confiável implícita permite que um usuário herde uma função que não está disponível para ele fora do escopo dessa definição de conexão confiável. O ID de autorização da sessão da conexão recebe uma associação temporária a uma função declarada na definição de contexto confiável.

    O diagrama a seguir mostra um exemplo de uma conexão confiável implícita na qual a conexão de apenas um endereço IP é permitida.

     

    ""
    1. A função dbconnrole é criada e a conexão com o banco de dados é concedida. O contexto confiável ctximpl é criado com base na conexão usada authid ABC com o endereço IP 10.10.10.1 e a função padrãodbconnrole.

    2. O usuário ABC pode se conectar ao banco de dados a partir do endereço IP10.10.10.1.

    3. O usuário não ABC consegue se conectar a partir do endereço IP10.10.10.2.

  • Conexão confiável explícita — Uma conexão confiável explícita permite que um servidor de aplicativos confiável ou outro servidor de banco de dados Db2 alterne a ID do usuário atual na conexão existente de maneira eficiente. Um servidor de aplicativos estabelece a conexão original com uma solicitação explícita de confiança. Depois que a confiança é estabelecida, o servidor do aplicativo pode emitir solicitações ao servidor do banco de dados para alterar o ID de autorização da sessão para qualquer nova unidade de trabalho. O ID usado para realizar a solicitação de conexão inicial precisa apenas de CONNECT privilégios no servidor.

    Conexões confiáveis explícitas são úteis quando você tem um servidor de camada intermediária que precisa emitir solicitações de banco de dados em nome de vários usuários com diferentes conjuntos de padrões de acesso em vários objetos de banco de dados, como tabelas. O objeto de contexto confiável criado no servidor de banco de dados permite que o servidor de camada intermediária estabeleça uma conexão explícita confiável com o banco de dados e, em seguida, alterne a ID de usuário atual da conexão para a ID de usuário correspondente sem a necessidade de se autenticar novamente no servidor de banco de dados. Com base nos privilégios concedidos nos objetos do banco de dados para o ID de autorização do usuário, o usuário pode continuar executando operações, mantendo a identidade real do usuário que executa qualquer tarefa específica.

    O diagrama a seguir mostra um exemplo de uma conexão confiável explícita na qualUSER1,USER2, e USER3 todos se conectam por meio do authidAPPID.

    ""
    1. O contexto confiável ctxexpl é criado com base na conexão usando authid APPID o endereço 10.10.10.1 IP dos usuários USER1USER2, USER3 e.

    2. Os usuários se conectam a um servidor de nível intermediário.

    3. A conexão confiável é estabelecida usandoAPPID.