SóProvas


ID
906790
Banca
FCC
Órgão
TRT - 9ª REGIÃO (PR)
Ano
2013
Provas
Disciplina
Banco de Dados
Assuntos

Para adicionar um usuário ao banco de dados do SQL Server 2008 devem-se seguir 3 passos:

1. Criar um login, que identifica um usuário que terá permissão de utilizar o SQL Server.
CREATE LOGIN USUARIO WITH PASSWORD = 'senha';

2. Criar um usuário para o banco de dados que deseja, mapeando esse usuário para o login criado, assim este usuário conseguirá acessar o banco de dados desejado.
CREATE USER USUARIO FROM LOGIN USUARIO;

3. Criar ou remover permissões para o usuário, porque até o passo 2 o usuário criado só tem direito a entrar no banco de dados e, com as permissões, o usuário pode operar no banco de dados. Se o usuário for comum, pode-se adicioná-lo apenas com os comandos ...... e ......, que permitirão que o usuário faça SELECT, INSERT, DELETE e UPDATE em todas as tabelas do referido banco de dados.

Os comandos que criam corretamente as permissões para o USUARIO, mencionadas no passo 3 é

Alternativas
Comentários
  • Prezados,
    Para se estabelecer permissões no SQL Server devemos utilizar a procedure SP_ADDROLEMEMBER , que adiciona um usuário de banco de dados, uma função de banco de dados, o logon do Windows ou um grupo do Windows em uma função de banco de dados no banco de dados atual.
    A procedure recebe como parâmetros o perfil ( rolename) e o usuário ( username) , nessa ordem, com sintaxe :
    sp_addrolemember [ @rolename = ] 'role', [ @membername = ] 'security_account'
    Observamos que as alternativas C e D fazem o uso incorreto da sintaxe, passando o nome do usuário antes da stored procedure, e a letra A faz uso de roles inexistentes.
    Lembrando que a questão versa sobre o SQL Server 2008 , no SQL Server 2012 essa stored procedure está sendo descontinuado, e deve ser utilizado o ALTER ROLE ao invés da procedure.
    Portanto, alternativa correta é a letra E.
    Fonte : http://msdn.microsoft.com/pt-br/library/ms187750.aspx
    1. Para adicionar um usuário ao banco de dados do SQL Server você tem que seguir três passos:
    2. Primeiro: você deve criar um login, que é um "cara" que tem permisssão de se logar no SQL Sever.

    3. CREATE LOGIN USUARIO WITH PASSWORD ='senha';

    4. Segundo: você deve criar um usuário para o banco de dados
    5.  que deseja mapeando esse usuário para o login criado,
    6.  assim seu usuário conseguirá se logar no SQL Server
    7. e entrar no banco de dados desejado.

    8. CREATE USER USUARIO FROM LOGIN USUARIO;

    9. Terceiro: você deve dar ou remover permissões ao
    10.  usuário porque até o segundo passo o usuário criado
    11. só tem direito a entrar no banco de dados, dando as permissões
    12. o usuário já pode operar no banco de dados.Se o usuário for
    13. comum você pode adicioná-lo apenas as roles de db_reader e db_writer,
    14. que permitirá que o usuário faça select, insert, delete e update em todas
    15.  as tabelas do referido banco de dados.

    16. EXEC SP_ADDROLEMEMBER 'DB_DATAREADER','USUARIO'
    17. EXEC SP_ADDROLEMEMBER 'DB_DATAWRITER','USUARIO'

  • Interessante questão, apesar de estar defasada em relação à versão SQL Server 2012.

    This feature will be removed in a future version of Microsoft SQL Server. Avoid using this feature in new development work, and plan to modify applications that currently use this feature. Use ALTER ROLE instead.

    Fonte: http://msdn.microsoft.com/en-us/library/ms187750.aspx

    Mas admito que acertei no chute, o raciocinio foi o seguinte:

    EXEC (Nome do stored procedure) (Parametros separados por virgula, e com valores em aspas simples, caso seja uma string)

    EXEC (Nome do stored procedure) (Nome do DB em aspas simples),(Nome do usuario em aspas simples)

    Como SP, vem de Stored Procedure, geralmente a MS nomeia seus stored procedures assim, fiquei entre a e) e a).
    Marquei a e) na sorte.

  • Sabendo a sintaxe e reparando que depois do EXEC viria o nome da procedure dava pra matar a B, C e a D. Entre a A e a E dava pra arriscar a E, porque parecia estranho algo chamdo WRITERONLY.

    Pelo que reparei fazendo questões, é muito importante se familiarizar com a sintaxe e padrões de nomenclaturas dos diversos SGBDs. Dá pra resolver muita questão, sem conhecer os detalhes, assim.