AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / dba / Perguntas / 2572
Accepted
Michael Hedgpeth
Michael Hedgpeth
Asked: 2011-05-07 17:43:38 +0800 CST2011-05-07 17:43:38 +0800 CST 2011-05-07 17:43:38 +0800 CST

Como atribuo um acesso de segurança de grupo inteiro do Active Directory no SQL Server 2008?

  • 772

Eu gostaria de usar a segurança integrada com meu aplicativo interno que está todo em um domínio. Infelizmente, nunca consegui fazer isso funcionar bem. Gostaria de atribuir a um grupo inteiro do Exchange (Active Directory) uma função no SQL Server para acesso de leitura/gravação a determinadas tabelas. Dessa forma eu não precisaria criar um operador sempre que alguém fosse contratado ou deletar um operador sempre que alguém fosse demitido. Isso é possível? Que passos eu tomaria para fazer isso?

sql-server sql-server-2008
  • 4 4 respostas
  • 133163 Views

4 respostas

  • Voted
  1. Best Answer
    gbn
    2011-05-08T00:31:50+08:002011-05-08T00:31:50+08:00
    • Defina o grupo AD como um logon. E "login" significa login no nível do servidor e não o conceito AD de usuário/login. No SQL Server, esta é uma entidade de nível de servidor
    • Crie um usuário mapeado. Você não deveria realmente permitir um usuário diretamente nas tabelas. E "usuário" significa usuário de banco de dados e não o conceito de usuário do AD: no SQL Server, este é um "principal de nível de banco de dados"
    • Adicionar usuário à função (também um "principal de nível de banco de dados")
    • GRANT permissões para as funções nas tabelas (uma tabela ou proc etc é um "protegível")

    Script de amostra

    USE master;
    GO
    CREATE LOGIN [MYDOMAIN\APPLICATION SUPPORT] FROM WINDOWS;
    GO
    USE mydb;
    GO
    CREATE USER [MYDOMAIN\APPLICATION SUPPORT] FROM LOGIN [MYDOMAIN\APPLICATION SUPPORT];
    GO
    CREATE ROLE rSupport;
    GO
    EXEC sp_addrolemember 'rSupport', 'MYDOMAIN\APPLICATION SUPPORT';
    GO
    GRANT SELECT, INSERT,UPDATE, etc ON Mytable TO rSupport;
    GO
    

    sp_addrolememberé preterido a partir do SQL Server 2012, onde ALTER ROLEdeve ser usado.

    • 52
  2. Even Mien
    2016-03-01T20:53:43+08:002016-03-01T20:53:43+08:00

    De marc_s respondendo "Como adicionar grupo de usuários do Active Directory como login no SQL Server" :

    No SQL Server Management Studio, vá para Object Explorer > (your server) > Security > Loginse clique com o botão direito do mouse New Login:

    insira a descrição da imagem aqui

    Em seguida, na caixa de diálogo que aparece, escolha os tipos de objetos que deseja ver ( Groupsdesativado por padrão - verifique!) e escolha o local onde deseja procurar seus objetos (por exemplo, use Entire Directory) e encontre seu grupo AD .

    insira a descrição da imagem aqui

    Agora você tem um login regular do SQL Server - assim como quando você cria um para um único usuário do AD. Dê a esse novo login as permissões nos bancos de dados de que ele precisa e pronto!

    Qualquer membro desse grupo do AD agora pode fazer login no SQL Server e usar seu banco de dados.

    • 8
  3. Peter Schofield
    2011-05-08T00:00:34+08:002011-05-08T00:00:34+08:00

    Conceder as permissões no SQL Server para um grupo do AD é relativamente simples. Isso pode ser feito por meio do T-SQL ou do Management Studio.

    Por exemplo, se você tiver um grupo AD chamado MYDOMAIN\APPLICATION SUPPORT, você criaria o logon no nível do servidor e usaria mapeamentos para bancos de dados individuais para fornecer permissões um pouco mais granulares, como leitor de dados.

    Idealmente, todo o acesso ao aplicativo deve ser por meio de procedimentos armazenados*, portanto, apenas as permissões de execução nesses procedimentos armazenados nesse banco de dados são necessárias.

    * Do ponto de vista da segurança, para permitir que um determinado usuário veja alguns dados específicos, você pode criar um procedimento e conceder ao usuário permissão de execução nesse procedimento, e nada mais. Permitir que o usuário consulte diretamente significaria dar permissão de seleção em todas as tabelas envolvidas. Também é mais fácil trabalhar com procedimentos e mais fácil de depurar.

    Os procedimentos armazenados abstraem o acesso à tabela e limitam o acesso. Para os tipos de DBA, é como "deixe-me ver todas as suas variáveis ​​de instância: não quero usar métodos, getters ou setters".

    • 4
  4. Piyush Agrawal
    2012-03-01T04:25:20+08:002012-03-01T04:25:20+08:00

    Se o usuário for membro de um DOMAIN\SecurityGroup que tenha autoridade Sysadmin no SQL, isso será usado ao acessar bancos de dados. Caso contrário, você precisa verificar quais DOMAIN\SecurityGroup(s) receberam autoridade em cada banco de dados. Se o usuário for membro de 2 SecurityGroups, com SecGroupA tendo autoridade de seleção e SecGroupB tendo autoridade de inserção, o usuário poderá selecionar e inserir.

    • 1

relate perguntas

  • Quais são as principais causas de deadlocks e podem ser evitadas?

  • Quanto "Padding" coloco em meus índices?

  • Existe um processo do tipo "práticas recomendadas" para os desenvolvedores seguirem para alterações no banco de dados?

  • Como determinar se um Índice é necessário ou necessário

  • Downgrade do SQL Server 2008 para 2005

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Como você mysqldump tabela (s) específica (s)?

    • 4 respostas
  • Marko Smith

    Como você mostra o SQL em execução em um banco de dados Oracle?

    • 2 respostas
  • Marko Smith

    Como selecionar a primeira linha de cada grupo?

    • 6 respostas
  • Marko Smith

    Listar os privilégios do banco de dados usando o psql

    • 10 respostas
  • Marko Smith

    Posso ver Consultas Históricas executadas em um banco de dados SQL Server?

    • 6 respostas
  • Marko Smith

    Como uso currval() no PostgreSQL para obter o último id inserido?

    • 10 respostas
  • Marko Smith

    Como executar o psql no Mac OS X?

    • 11 respostas
  • Marko Smith

    Como inserir valores em uma tabela de uma consulta de seleção no PostgreSQL?

    • 4 respostas
  • Marko Smith

    Como faço para listar todos os bancos de dados e tabelas usando o psql?

    • 7 respostas
  • Marko Smith

    Passando parâmetros de array para um procedimento armazenado

    • 12 respostas
  • Martin Hope
    Manuel Leduc Restrição exclusiva de várias colunas do PostgreSQL e valores NULL 2011-12-28 01:10:21 +0800 CST
  • Martin Hope
    markdorison Como você mysqldump tabela (s) específica (s)? 2011-12-17 12:39:37 +0800 CST
  • Martin Hope
    Stuart Blackler Quando uma chave primária deve ser declarada sem cluster? 2011-11-11 13:31:59 +0800 CST
  • Martin Hope
    pedrosanta Listar os privilégios do banco de dados usando o psql 2011-08-04 11:01:21 +0800 CST
  • Martin Hope
    Jonas Como posso cronometrar consultas SQL usando psql? 2011-06-04 02:22:54 +0800 CST
  • Martin Hope
    Jonas Como inserir valores em uma tabela de uma consulta de seleção no PostgreSQL? 2011-05-28 00:33:05 +0800 CST
  • Martin Hope
    Jonas Como faço para listar todos os bancos de dados e tabelas usando o psql? 2011-02-18 00:45:49 +0800 CST
  • Martin Hope
    BrunoLM Guid vs INT - Qual é melhor como chave primária? 2011-01-05 23:46:34 +0800 CST
  • Martin Hope
    bernd_k Quando devo usar uma restrição exclusiva em vez de um índice exclusivo? 2011-01-05 02:32:27 +0800 CST
  • Martin Hope
    Patrick Como posso otimizar um mysqldump de um banco de dados grande? 2011-01-04 13:13:48 +0800 CST

Hot tag

sql-server mysql postgresql sql-server-2014 sql-server-2016 oracle sql-server-2008 database-design query-performance sql-server-2017

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve