Compartilhar via


sp_adduser (Transact-SQL)

Aplica-se: SQL Server

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

Importante

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

Convenções de sintaxe de Transact-SQL

Sintaxe

sp_adduser
    [ @loginame = ] N'loginame'
    [ , [ @name_in_db = ] N'name_in_db' ]
    [ , [ @grpname = ] N'grpname' ]
[ ; ]

Argumentos

@loginame [ = ] N'loginame'

O nome do logon do SQL Server ou da conta do Windows. @loginame é sysname, sem padrão. @loginame deve ser um logon existente do SQL Server ou uma conta do Windows.

@name_in_db [ = ] N'name_in_db'

O nome do novo usuário do banco de dados. @name_in_db é sysname, com um padrão de NULL. Se @name_in_db não for especificado, o nome do novo usuário do banco de dados será padronizado para @loginame. Especificar @name_in_db dá ao novo usuário um nome no banco de dados diferente do nome de logon no nível do servidor.

@grpname [ = ] N'grpname'

A função de banco de dados da qual o novo usuário se torna membro. @grpname é sysname, com um padrão de NULL. @grpname deve ser uma função de banco de dados válida no banco de dados atual.

Valores do código de retorno

0 (sucesso) ou 1 (falha).

Comentários

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

Depois que um usuário for adicionado, use as GRANTinstruções , DENYe REVOKE para definir as permissões que controlam as atividades executadas pelo usuário.

Use sys.server_principals para exibir uma lista de logins 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 obterá as permissões concedidas à função pública padrão. Para adicionar um usuário a uma função, um valor para o @name_in_db deve ser fornecido. (@name_in_db pode ser o mesmo que @loginame.)

O usuário convidado já existe em todos os bancos de dados. Adicionar convidado do usuário habilita esse usuário, se ele tiver sido desabilitado anteriormente. Por padrão, o usuário convidado é desabilitado em novos bancos de dados.

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

Você não pode adicionar um usuário convidado porque um usuário convidado já existe dentro de cada banco de dados. Para habilitar o usuário convidado, conceda a permissão CONNECT convidado, conforme mostrado:

GRANT CONNECT TO guest;
GO

Permissões

Requer propriedade do banco de dados.

Exemplos

R. Adicionar um usuário de banco de dados

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

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

B. Adicionar um usuário de banco de dados com o mesmo ID de login

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

EXEC sp_adduser 'Arvind';

C. Adicionar um usuário de banco de dados com um nome diferente do login no nível do servidor

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

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