sp_adduser (Transact-SQL)

Adiciona um novo usuário ao banco de dados atual.

Observação importanteImportante

Esse recurso será removido em uma versão futura do Microsoft SQL Server. Evite usar esse recurso em desenvolvimentos novos e planeje modificar os aplicativos que atualmente o utilizam. Use CREATE USER em vez disso.

Ícone de vínculo de tópicoConvenções de sintaxe Transact-SQL

Sintaxe

sp_adduser [ @loginame = ] 'login' 
        [ , [ @name_in_db = ] 'user' ] 
        [ , [ @grpname = ] 'role' ] 

Argumentos

  • [ @loginame = ] 'login'
    É o nome da conta de logon do SQL Server ou de logon do Windows. login é um sysname, sem nenhum padrão. login deve ser um logon existente SQL Server ou logon do Windows.

  • [ @name_in_db = ] 'user'
    É o nome do novo usuário de banco de dados. user é um sysname, com um padrão NULL. Se user não for especificado, o nome do novo usuário de banco de dados assumirá como padrão o nome de login. A especificação de user fornece ao novo usuário um nome no banco de dados diferente do nome de logon em nível de servidor.

  • [ @grpname = ] 'role'
    É a função de banco de dados da qual o novo usuário se torna um membro. role é sysname, com um padrão NULL. role deve ser uma função de banco de dados válida no banco de dados atual.

Valores de código de retorno

0 (êxito) ou 1 (falha)

Comentários

sp_adduser também criará um esquema que tem o nome do usuário.

Depois que um usuário for adicionado, use as instruções GRANT, DENY e REVOKE para definir as permissões que controlam as atividades executadas pelo usuário.

Use sys.server_principals para exibir uma lista de nomes de logon válidos.

Use sp_helprole para exibir uma lista dos nomes de função válidos. Quando você especifica uma função, o usuário automaticamente ganha as permissões definidas para ela. Se uma função não for especificada, o usuário ganhará as permissões concedidas à função pública padrão. Para adicionar um usuário a uma função, deve ser fornecido um valor para user name. (username pode ser igual a login_id.)

O usuário convidado já existe em todo banco de dados. A adição do usuário convidado habilitará esse usuário, se ele foi desabilitado anteriormente. Por padrão, o usuário convidado é desabilitado em novos bancos de dados.

sp_adduser não pode ser executado em uma transação definida pelo usuário.

Não é possível adicionar um usuário convidado porque um usuário convidado já existe em todo banco de dados. Para habilitar o usuário convidado, conceda ao convidado a permissão CONNECT conforme mostrado:

GRANT CONNECT TO guest;
GO

Permissões

Requer propriedade do banco de dados.

Exemplos

A. Adicionando um usuário de banco de dados

O exemplo a seguir adicionar o usuário de banco de dados Vidur à função existente Recruiting no banco de dados atual, usando o logon existente Vidur do SQL Server.

EXEC sp_adduser 'Vidur', 'Vidur', 'Recruiting'

B. Adicionando um usuário de banco de dados com a mesma ID de logon

O exemplo a seguir adiciona o usuário Arvind ao banco de dados atual para o logon Arvind do SQL Server. Esse usuário pertence à função pública padrão.

EXEC sp_adduser 'Arvind'

C. Adicionando um usuário de banco de dados com um nome diferente de seu logon em nível de servidor

O exemplo a seguir adiciona o logon BjornR do SQL Server ao banco de dados atual que possui um nome de usuário Bjorn, e adiciona o usuário de banco de dados Bjorn à função de banco de dados Production.

EXEC sp_adduser 'BjornR', 'Bjorn', 'Production'