Partilhar via


UTILIZADOR (Transact-SQL)

Aplica-se a:Banco de Dados SQL doAzureInstância Gerenciada de SQL do AzureAzure Synapse AnalyticsAnalytics Platform System (PDW)Banco de Dados SQL no Microsoft Fabric

Permite que um valor fornecido pelo sistema para o nome de utilizador da base de dados do utilizador atual seja inserido numa tabela quando não há valor por defeito.

Transact-SQL convenções de sintaxe

Sintaxe

USER  

Tipos de devolução

nvarchar(128)

Observações

O UTILIZADOR oferece a mesma funcionalidade que a função do sistema USER_NAME.

Use USER com restrições DEFAULT nas instruções CREATE TABLE ou ALTER TABLE, ou use como qualquer função padrão.

UTILIZADOR devolve sempre o nome do contexto atual. Quando chamado após uma instrução EXECUTE AS, USER devolve o nome do contexto personificado.

Se um principal do Windows aceder à base de dados através da pertença a um grupo, o UTILIZADOR devolve o nome do principal do Windows em vez do nome do grupo.

Examples

A. Usar USER para devolver o nome de utilizador da base de dados

O exemplo seguinte declara uma variável como char, atribui-lhe o valor atual de USER e depois imprime a variável com uma descrição em texto.

DECLARE @usr CHAR(30)  
SET @usr = user  
SELECT 'The current user''s database username is: '+ @usr  
GO  

Aqui está o conjunto de resultados.

-----------------------------------------------------------------------  
The current user's database username is: dbo  
 
(1 row(s) affected)

B. Usar USER com restrições DEFAULT

O exemplo seguinte cria uma tabela usando USER como DEFAULT restrição para o vendedor de uma linha de vendas.

USE AdventureWorks2022;  
GO  
CREATE TABLE inventory22  
(  
 part_id INT IDENTITY(100, 1) NOT NULL,  
 description VARCHAR(30) NOT NULL,  
 entry_person VARCHAR(30) NOT NULL DEFAULT USER   
)  
GO  
INSERT inventory22 (description)  
VALUES ('Red pencil')  
INSERT inventory22 (description)  
VALUES ('Blue pencil')  
INSERT inventory22 (description)  
VALUES ('Green pencil')  
INSERT inventory22 (description)  
VALUES ('Black pencil')  
INSERT inventory22 (description)  
VALUES ('Yellow pencil')  
GO  

Esta é a consulta para selecionar toda a informação da inventory22 tabela:

SELECT * FROM inventory22 ORDER BY part_id;  
GO  

Aqui está o conjunto de resultados (note o entry-person valor):

part_id     description                    entry_person
----------- ------------------------------ -------------------------
100         Red pencil                     dbo
101         Blue pencil                    dbo
102         Green pencil                   dbo
103         Black pencil                   dbo
104         Yellow pencil                  dbo
 
(5 row(s) affected)

C. Usar USER em combinação com EXECUTE AS

O exemplo seguinte ilustra o comportamento de USER quando chamado dentro de uma sessão personificada.

SELECT USER;  
GO  
EXECUTE AS USER = 'Mario';  
GO  
SELECT USER;  
GO  
REVERT;  
GO  
SELECT USER;  
GO  

Aqui está o conjunto de resultados.

DBO
Mario
DBO

Ver também

ALTERAR TABELA (Transact-SQL)
CRIAR TABELA (Transact-SQL)
CURRENT_TIMESTAMP (Transact-SQL)
CURRENT_USER (Transact-SQL)
Funções de segurança (Transact-SQL)
SESSION_USER (Transact-SQL)
SYSTEM_USER (Transact-SQL)
USER_NAME (Transact-SQL)