Identificando usuários em SQL
outubro 31, 2007
A palavra chave USER_NAME no SQL é usada para informar o nome do usuário (como o próprio nome diz). Veja o exemplo abaixo:
SELECT USER_NAME()
No caso acima informará o usuário que está logado na base de dados, se o usuário estiver em rede será informado o nome da rede, barra invertida e em seguida o nome do usuário. Ex.: ‘SQLCOMOUMTODO\alexandre’.
O USER_NAME pode receber um parâmetro que deve ser o ID do usuário na base de dados.
SELECT USER_NAME(1)
Na maioria dos casos, o ID 1 corresponde ao usuário ‘dbo’.
Para se obter maiores informações sobre o usuário, deve fazer o filtro na tabela de gerenciamento de usuários, a ‘sysusers’. Esta tabela pode fornecer informações como: quando foi criado o usuário (createdate), quando foi atualizado o usuário (updatedate), se o usuário está logado no momento, entre outras informações.
SELECT
*
FROM
sysusers
WHERE
name = USER_NAME(1)
A instrução acima retorna a mesma informação da instrução abaixo. Apenas mudando os campos que são comparados.
SELECT
*
FROM
sysusers
WHERE
uid = 1