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 .
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
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
ENABLEExemplo 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
