Noções básicas sobre permissões do SQL Server

8

Estou pesquisando no SQL Server Management Studio em minha instância do SQL Server 2008 R2 Express Edition. Estou tentando entender como as permissões funcionam.

O que posso ver é (através das propriedades de muitas dessas entidades)

  1. O Login do meu servidor pode ser vinculado a um usuário do banco de dados
  2. Meu usuário do banco de dados pode ter uma ou mais funções de banco de dados
  3. Uma das funções de banco de dados é db_datawriter, que possui o esquema db_datawriter

No entanto, nesse ponto, a trilha fica fria. O esquema db_datawriter possui uma página de permissões em suas propriedades, que está em branco.

O que define com precisão quais são as permissões do esquema db_datawriter?

akc42
fonte

Respostas:

7

O db_datawriter não possui itens na página de permissões porque não possui permissões explícitas para objetos como tais. Os direitos estão implícitos no papel.

O MSDN para db_datawriter diz

Os membros da função de banco de dados fixa db_datawriter podem adicionar, excluir ou alterar dados em todas as tabelas do usuário.

Possui INSERT, UPDATE, DELETE em tabelas, conforme outra página do MSDB. Permissões de funções de banco de dados fixas

Concedido: DELETE, INSERT, UPDATE

Por fim, o que o mecanismo do banco de dados diz (SQL Server 2008 R2)?

EXEC sp_dbfixedrolepermission 'db_datawriter'

db_datawriter   DELETE permission on any object
db_datawriter   INSERT permission on any object
db_datawriter   UPDATE permission on any object

As páginas do MSDN do SQL Server 2008 estão aqui (hierarquia de páginas diferente)

gbn
fonte
Acho que o OP está perguntando sobre as permissões no esquema, não sobre a função db fixa. A menos que eu tenha interpretado mal isso?
Thomas Stringer
@ Surfer513: o esquema é um espaço reservado para o papel, ele não tem permissões
GBN
Ah, tudo bem, entendo. Obrigado por esclarecer o equívoco!
Thomas Stringer
Na verdade, eu estava tentando descobrir se db_datawriter lhe deu o direito de escrever através de uma exibição. Eu acho que a resposta é que você pode se tiver permissões na tabela subjacente (e atender às outras condições de inserir apenas uma tabela). Minha incapacidade de gravação acabou por ser um problema nova propagação com a coluna de identidade e falhou na tabela subjacente, bem
akc42