sys.sp_adduser (Transact-SQL)

Aplica-se a: SQL Server

Adiciona um novo utilizador à base de dados atual.

Importante

Esse recurso será removido em uma versão futura do SQL Server. Evite usar esse recurso em novos trabalhos de desenvolvimento e planeje modificar aplicativos que atualmente usam esse recurso. Utilize CREATE USER em substituição.

Transact-SQL convenções de sintaxe

Sintaxe

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

Arguments

[ @loginame = ] N'loginame'

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

@name_in_db [ = ] N'name_in_db'

O nome para o novo utilizador da base de dados. @name_in_db é sysname, com um padrão de NULL. Se @name_in_db não for especificado, o nome do novo utilizador da base de dados passa por defeito a @loginame. Especificar @name_in_db dá ao novo utilizador um nome na base de dados diferente do nome de login ao nível do servidor.

[ @grpname = ] N'grpname'

O papel na base de dados do qual o novo utilizador se torna membro. @grpname é sysname, com um padrão de NULL. @grpname deve ser um papel válido na base de dados atual.

Valores de código de retorno

0 (sucesso) ou 1 (fracasso).

Remarks

sp_adduser Também cria um esquema com o nome do utilizador.

Depois de um utilizador ser adicionado, use as GRANTinstruções , DENY, e REVOKE para definir as permissões que controlam as atividades realizadas pelo utilizador.

Use sys.server_principals para mostrar uma lista de logins válidos.

sp_helprole Use para mostrar uma lista dos nomes válidos dos papéis. Quando especifica um papel, o utilizador obtém automaticamente as permissões definidas para o papel. Se um papel não for especificado, o utilizador obtém as permissões concedidas ao papel público padrão. Para adicionar um utilizador a uma função, é necessário fornecer um valor para o @name_in_db . (@name_in_db pode ser igual a @loginame.)

O guest de utilizador já existe em todas as bases de dados. Adicionar um utilizador convidado ativa este utilizador, caso tenha sido desativado anteriormente. Por defeito, o guest do utilizador está desativado nas novas bases de dados.

sp_adduser não pode ser executado dentro de uma transação definida pelo utilizador.

Não podes adicionar um utilizador convidado porque já existe um utilizador convidado em todas as bases de dados. Para ativar o utilizador convidado , conceda permissão de LIGAÇÃO ao convidado conforme mostrado:

GRANT CONNECT TO guest;
GO

Permissions

Requer a posse da base de dados.

Exemplos

A. Adicionar um utilizador de base de dados

O exemplo seguinte adiciona o utilizador Vidur da base de dados ao papel existente Recruiting na base de dados atual, usando o login Vidurdo SQL Server existente.

EXECUTE sp_adduser 'Vidur', 'Vidur', 'Recruiting';

B. Adicionar um utilizador de base de dados com o mesmo ID de login

O exemplo seguinte adiciona o utilizador Arvind à base de dados atual para o login Arvinddo SQL Server. Este utilizador pertence ao papel público padrão.

EXECUTE sp_adduser 'Arvind';

C. Adicionar um utilizador de base de dados com um nome diferente do seu login ao nível do servidor

O exemplo seguinte adiciona o login BjornR do SQL Server à base de dados atual que é o nome de utilizador de Bjorn, e adiciona o uso Bjorn da base de dados ao Production papel de base de dados.

EXECUTE sp_adduser 'BjornR', 'Bjorn', 'Production';