locked
Usuario sa RRS feed

  • Pergunta

  • Estou usando sql expres 2008 r2

    o usuário sa na tela login properties

    em user mapping ele tem acesso a 4 base de dados

    o default schema é dbo e o user é dbo

    minha dúvida é, o user não devia ser sa?

    e se for, como mudar

    obrigado 

    terça-feira, 28 de agosto de 2012 11:35

Respostas

  • No SQL uma coisa é login e outra coisa é usuário (user).

    • O login é a nível de servidor (instância).
    • O user é a nível de banco.

    Para um login ter acesso a uma base ele fica atrelado (linkado) a um user de banco.

    Neste caso o login sa está atrelado ao usuário dbo.

    Por isso você nunca verá user sa. Pois sa não é um usuário de banco, mas sim um login da instância.


    Roberson Ferreira - Database Developer
    Acesse: www.robersonferreira.com.br
    Email: contato@robersonferreira.com.br

    Se esta sugestão for útil, por favor, classifique-a como útil.
    Se ela lhe ajudar a resolver o problema, por favor, marque-a como Resposta.

    • Sugerido como Resposta Roberson Ferreira _ terça-feira, 28 de agosto de 2012 11:43
    • Marcado como Resposta cesarmene terça-feira, 28 de agosto de 2012 12:32
    terça-feira, 28 de agosto de 2012 11:43
  • Você quis dizer "como trocar o login de um usuário já criado", né!?

    No Management Studio, apontando para a base na qual está o usuário cujo login deseja mudar, execute:

    Alter User NOME_USUARIO With login = NOME_LOGIN


    Roberson Ferreira - Database Developer
    Acesse: www.robersonferreira.com.br
    Email: contato@robersonferreira.com.br

    Se esta sugestão for útil, por favor, classifique-a como útil.
    Se ela lhe ajudar a resolver o problema, por favor, marque-a como Resposta.

    • Sugerido como Resposta Roberson Ferreira _ terça-feira, 28 de agosto de 2012 11:56
    • Marcado como Resposta cesarmene terça-feira, 28 de agosto de 2012 12:32
    terça-feira, 28 de agosto de 2012 11:56
  • Como assim "como fica isto se um cliente baixar e instalar o sql express"?

    A questão é a seguinte, ainda que uma instância este configurada para o modo de autenticação misto, um usuário que acesse o SQL com autenticação Windows só terá acesso a uma base de dados de existir um user atrelado ao login Windows dele.


    Roberson Ferreira - Database Developer
    Acesse: www.robersonferreira.com.br
    Email: contato@robersonferreira.com.br

    Se esta sugestão for útil, por favor, classifique-a como útil.
    Se ela lhe ajudar a resolver o problema, por favor, marque-a como Resposta.

    • Marcado como Resposta cesarmene terça-feira, 28 de agosto de 2012 14:02
    terça-feira, 28 de agosto de 2012 12:50
  • Se você clicar com o botão direito no login (do Windows) e ir em User Mapping verá as bases que este login tem acesso, por estar mapeado com algum user de banco.

    Tire esse mapeamento, caso haja.

    Se não houver mapeamento, este login automaticamente não terá acesso às bases.


    Roberson Ferreira - Database Developer
    Acesse: www.robersonferreira.com.br
    Email: contato@robersonferreira.com.br

    Se esta sugestão for útil, por favor, classifique-a como útil.
    Se ela lhe ajudar a resolver o problema, por favor, marque-a como Resposta.

    • Marcado como Resposta cesarmene terça-feira, 28 de agosto de 2012 14:02
    terça-feira, 28 de agosto de 2012 13:15
  • Então...

    Se este login do Windows não deve ser o dbo na base, quem deve ser?

    Quem é o "dono" do banco?

    Você pode mudar isso com a procedure abaixo, na qual informa quem passa a ser o db_owner do banco.

    EXEC sp_changedbowner 'Albert'


    Roberson Ferreira - Database Developer
    Acesse: www.robersonferreira.com.br
    Email: contato@robersonferreira.com.br

    Se esta sugestão for útil, por favor, classifique-a como útil.
    Se ela lhe ajudar a resolver o problema, por favor, marque-a como Resposta.

    • Sugerido como Resposta Roberson Ferreira _ terça-feira, 28 de agosto de 2012 13:50
    • Marcado como Resposta cesarmene terça-feira, 28 de agosto de 2012 14:01
    terça-feira, 28 de agosto de 2012 13:50
  • Boa Noite,

    Excelentes as respostas e observações do Roberson.

    Eu costumo dizer que a instância é como um condomínio e os bancos de dados são como apartamentos. O login possui a autorização para entrar no condomínio, mas apenas o usuário possui a chave do apartamento. Entrar no condomínio sem conseguir entrar no apartamento tem pouca ou nenhuma utilidade. Por outro lado, não é possível entrar no apartamento sem antes conseguir entrar no condomínio. Um login sem usuário conecta-se ao SQL Server, mas não acessa nenhum banco. Um usuário sem login sequer conseguirá conectar-se (exceto em algumas situações muito especiais).

    Uma última observação é em relação a procedure sp_changedbowner. Não use essa procedure. Opte pelo comando correto (esquecendo o legado).

    ALTER AUTHORIZATION ON DATABASE::Banco TO LoginDesejado

    [ ]s,

    Gustavo Maia Aguiar
    Blog: http://gustavomaiaaguiar.wordpress.com
    Vídeos:http://www.youtube.com/user/gmasql


    Classifique as respostas. O seu feedback é imprescindível

    quarta-feira, 5 de setembro de 2012 01:41

Todas as Respostas

  • No SQL uma coisa é login e outra coisa é usuário (user).

    • O login é a nível de servidor (instância).
    • O user é a nível de banco.

    Para um login ter acesso a uma base ele fica atrelado (linkado) a um user de banco.

    Neste caso o login sa está atrelado ao usuário dbo.

    Por isso você nunca verá user sa. Pois sa não é um usuário de banco, mas sim um login da instância.


    Roberson Ferreira - Database Developer
    Acesse: www.robersonferreira.com.br
    Email: contato@robersonferreira.com.br

    Se esta sugestão for útil, por favor, classifique-a como útil.
    Se ela lhe ajudar a resolver o problema, por favor, marque-a como Resposta.

    • Sugerido como Resposta Roberson Ferreira _ terça-feira, 28 de agosto de 2012 11:43
    • Marcado como Resposta cesarmene terça-feira, 28 de agosto de 2012 12:32
    terça-feira, 28 de agosto de 2012 11:43
  • como faço para trocar o user de uma usuário já criado?

    este usuário não é o sa

    terça-feira, 28 de agosto de 2012 11:47
  • Você quis dizer "como trocar o login de um usuário já criado", né!?

    No Management Studio, apontando para a base na qual está o usuário cujo login deseja mudar, execute:

    Alter User NOME_USUARIO With login = NOME_LOGIN


    Roberson Ferreira - Database Developer
    Acesse: www.robersonferreira.com.br
    Email: contato@robersonferreira.com.br

    Se esta sugestão for útil, por favor, classifique-a como útil.
    Se ela lhe ajudar a resolver o problema, por favor, marque-a como Resposta.

    • Sugerido como Resposta Roberson Ferreira _ terça-feira, 28 de agosto de 2012 11:56
    • Marcado como Resposta cesarmene terça-feira, 28 de agosto de 2012 12:32
    terça-feira, 28 de agosto de 2012 11:56
  • entendi sua reposta

    mas tenho outra dúvida quanto a acessar com autenticação do windows

    eu me logo em um dominio e o sql foi instalado para autenticar pelas 2 maneiras

    mas quando acesso o sql com windows autentication ele não me pede senha

    como fica isto se um cliente baixar e instalar o sql express e optar pelas 2 maneiras de autenticação?

    ele vai poder enxergar todos os bancos mesmo que que crie logins como sql autentication para os bancos que vou usar?

    terça-feira, 28 de agosto de 2012 12:06
  • Como assim "como fica isto se um cliente baixar e instalar o sql express"?

    A questão é a seguinte, ainda que uma instância este configurada para o modo de autenticação misto, um usuário que acesse o SQL com autenticação Windows só terá acesso a uma base de dados de existir um user atrelado ao login Windows dele.


    Roberson Ferreira - Database Developer
    Acesse: www.robersonferreira.com.br
    Email: contato@robersonferreira.com.br

    Se esta sugestão for útil, por favor, classifique-a como útil.
    Se ela lhe ajudar a resolver o problema, por favor, marque-a como Resposta.

    • Marcado como Resposta cesarmene terça-feira, 28 de agosto de 2012 14:02
    terça-feira, 28 de agosto de 2012 12:50
  • isto que eu quero entender

    como desabilitar o acesso a umas base de dados por windows autentication?

    terça-feira, 28 de agosto de 2012 13:05
  • Se você clicar com o botão direito no login (do Windows) e ir em User Mapping verá as bases que este login tem acesso, por estar mapeado com algum user de banco.

    Tire esse mapeamento, caso haja.

    Se não houver mapeamento, este login automaticamente não terá acesso às bases.


    Roberson Ferreira - Database Developer
    Acesse: www.robersonferreira.com.br
    Email: contato@robersonferreira.com.br

    Se esta sugestão for útil, por favor, classifique-a como útil.
    Se ela lhe ajudar a resolver o problema, por favor, marque-a como Resposta.

    • Marcado como Resposta cesarmene terça-feira, 28 de agosto de 2012 14:02
    terça-feira, 28 de agosto de 2012 13:15
  • o usuário do dominio tem no user mapping como user o dbo

    então ele mão me deixa desmapear o acesso as base de dados

    terça-feira, 28 de agosto de 2012 13:24
  • Então...

    Se este login do Windows não deve ser o dbo na base, quem deve ser?

    Quem é o "dono" do banco?

    Você pode mudar isso com a procedure abaixo, na qual informa quem passa a ser o db_owner do banco.

    EXEC sp_changedbowner 'Albert'


    Roberson Ferreira - Database Developer
    Acesse: www.robersonferreira.com.br
    Email: contato@robersonferreira.com.br

    Se esta sugestão for útil, por favor, classifique-a como útil.
    Se ela lhe ajudar a resolver o problema, por favor, marque-a como Resposta.

    • Sugerido como Resposta Roberson Ferreira _ terça-feira, 28 de agosto de 2012 13:50
    • Marcado como Resposta cesarmene terça-feira, 28 de agosto de 2012 14:01
    terça-feira, 28 de agosto de 2012 13:50
  • muito obrigado pelas respostas

    foram muito esclarecedoras

    terça-feira, 28 de agosto de 2012 14:01
  • Boa Noite,

    Excelentes as respostas e observações do Roberson.

    Eu costumo dizer que a instância é como um condomínio e os bancos de dados são como apartamentos. O login possui a autorização para entrar no condomínio, mas apenas o usuário possui a chave do apartamento. Entrar no condomínio sem conseguir entrar no apartamento tem pouca ou nenhuma utilidade. Por outro lado, não é possível entrar no apartamento sem antes conseguir entrar no condomínio. Um login sem usuário conecta-se ao SQL Server, mas não acessa nenhum banco. Um usuário sem login sequer conseguirá conectar-se (exceto em algumas situações muito especiais).

    Uma última observação é em relação a procedure sp_changedbowner. Não use essa procedure. Opte pelo comando correto (esquecendo o legado).

    ALTER AUTHORIZATION ON DATABASE::Banco TO LoginDesejado

    [ ]s,

    Gustavo Maia Aguiar
    Blog: http://gustavomaiaaguiar.wordpress.com
    Vídeos:http://www.youtube.com/user/gmasql


    Classifique as respostas. O seu feedback é imprescindível

    quarta-feira, 5 de setembro de 2012 01:41