VERIFY_TRUSTED_CONTEXT_ROLE_FOR_USER Função escalar

A função VERIFY_TRUSTED_CONTEXT_ROLE_FOR_USER retorna um valor que indica se o ID de autorização identificado pelo registro especial SESSION_USER adquiriu uma função sob uma conexão confiável associada a algum contexto confiável e esse papel está em (ou parte de) os nomes de funções especificados pela lista de argumentos role-name-expression .

Read syntax diagramSkip visual syntax diagramVERIFY_TRUSTED_CONTEXT_ROLE_FOR_USER( SESSION_USER , role-name-expression )

O esquema é SYSIBM. O nome da função não pode ser especificado como um nome qualificado.

cargo-nome-expressão
Uma expressão que especifica um nome de função (SQLSTATE 42815). A existência do nome da função no servidor atual não é verificada. role-name-expression deve retornar um tipo de dados de cadeia de caracteres integrado ou tipo de dados string gráficas que não é um LOB (SQLSTATE 42815). O conteúdo da string não é dobrado para maiúsculas e não é alinhado à esquerda.

O resultado da função é um inteiro. O resultado não pode ser nulo. O resultado é 1 se o ID de autorização identificado pelo cadastro especial SESSION_USER adquiriu uma função sob uma conexão confiável associada a algum contexto confiável e esse papel está em (ou contido em qualquer um dos) os nomes de funções especificados pela lista de argumentos role-name-expression . Caso contrário, o resultado é 0.

Exemplo 1

Os caixas em um banco só podem acessar clientes a partir de seu próprio galho. Todos os tellers são membros na função TELLER, que só pode ser adquirida através de uma conexão confiável. Uma permissão de linha é criada por um usuário com autoridade SECADM para fazer cumprir esta regra.
CREATE PERMISSION TELLER_ROW_ACCESS ON CUSTOMER
  FOR ROWS WHERE
     VERIFY_TRUSTED_CONTEXT_ROLE_FOR_USER(SESSION_USER,'TELLER') = 1 AND
         BRANCH = (SELECT HOME_BRANCH FROM INTERNAL_INFO
             WHERE EMP_ID = USER)
ENFORCED FOR ALL ACCESS
ENABLE

Exemplo 2

A determinação sobre se o usuário pode ver a linha é determinada pelo nome da função na coluna ACCESS_ROLE da tabela que está sendo protegida. Uma permissão de linha é criada por um usuário com a autoridade SECADM para verificar o usuário da sessão está nessa função.

CREATE PERMISSION ROLEACCESS ON CUSTOMER
FOR ROWS WHERE ( VERIFY_TRUSTED_CONTEXT_ROLE_FOR_USER(SESSION_USER, ACCESS_ROLE ) = 1 )
ENFORCED FOR ALL ACCESS
ENABLE