Articles tagged with: server roles

Roles do SQL Server – Sysadmin

Superman-Unchained

Olá,

Conforme prometido, o post de hoje será sobre a última server role que faltava pra série aqui do blog: sysadmin! Na verdade é mais um post sobre CONTROL SERVER do que sysadmin, mas anyway…

Você conhece quem é sysadmin em seu ambiente e até onde ele pode chegar?

Roles do SQL Server – Public

public

 

 

 

 

 

 

 

 

Olá!

Continuando com a série de Roles do SQL Server, vamos conversar sobre a role Public.

Provavelmente o post mais rápido do blog =)

Public

De cara, vale dizer que public possui uma implementação diferente das outras roles de servidor. Alguma peculiaridades:

  • Todo login criado no SQL Server, por padrão está vinculado à role public;
  • Das roles de servidor padrão (entenda-se excluindo as roles de servidor customizadas), é a única server role que pode ter as permissões controladas através de GRANT, DENY e REVOKE;
  • É gerado em cada banco uma database role com o mesmo nome. Embora estejam estritamente relacionadas, não são a mesma coisa;

Qual a ideia afinal do public? Bem… Sabe o nosso direito de ser cidadão, independente de quem seja? Liberdade de ir e vir, liberdade de expressão, etc? Segue a mesma ideia. Os direitos (e restrições) valem pra todo mundo, exceto para os sysadmins (que não possuem nenhuma restrição). Public contém as instruções padrões para TODOS os logins que se autenticam na instância.

 

Acabamos de criar um login qualquer. Quais permissões ele possui? Até o momento nenhuma, exceto as automaticamente herdadas pelo public. Pra ficar mais claro ainda, vamos aos testes de laboratório. Logue com o usuário recém-criado e tente criar um base:

Obviamente, o esperado é…

Msg 262, Level 14, State 1, Line 1
CREATE DATABASE permission denied in database ‘master’.

Agora, logado em seu usuário que seja sysadmin ou que tenha privilégios suficientes para executar o comando abaixo, tire a prova…

Com o login NaoFazNada, tente criar a base novamente…

 

Observações de public

Embora conceder permissões para public sempre seja o caminho mais fácil, evite isso sempre que possível. É a mesma coisa de, na preguiça, conceder acesso para Everyone em determinado diretório no Windows Server… Resolver resolve, mas abre a porta pra qualquer um entrar. Será que isso pode causar dor de cabeça futuramente?

E mais algumas enquanto database-role…

Existe outro cuidado bastante peculiar quando falamos de public enquanto DATABASE-ROLE (É importante distinguir uma da outra). É comum encontrarmos por aí solicitações, por exemplo, de conceder permissão para executar functions de tratamento de caracteres para o public em determinado banco. Esse public  como database-role na verdade contêm as definições que TODOS os usuários com acesso em determinada base.

Não é foco desta postagem granular a atuação do public ao nível de banco, mas, sobre tal tipo de solicitação bastante recorrente, só tenho a dizer que, embora facilite demais a vida de quem utiliza essas funções, sempre se deve levar em conta o permissionamento mínimo, logo…

Futuramente, vou criar um post sobre o tema, mas enquanto isso…

Por fim..

A conclusão é: nunca confie demais algo ao público, você pode não saber quem está lá.

Fique à vontade para acrescentar algo nos comentários abaixo, caso queira. Nos vemos por aí.

Roles do SQL Server – Vida e Obra

s12

(Esse artigo faz parte da série Roles do SQL Server – Vida e Obra)

Bom dia!

Este post inicia o começo de uma série sobre as Server-roles:  Roles no SQL Server.

Entendo que é um assunto importante tanto pra DBA’s (essencial aqui) quanto pra Desenvolvedores, que por vezes que precisam gerenciar o SQL Server por motivo ou outro.

1 – Básico sobre Segurança

Tem um artigo legal do Laurentiu que trata dos aspectos básicos de segurança no SQL Server. Em resumo:

  • Existem dois escopos principais no SQL Server quando o assunto é segurança: Server (Instância) e Databases (Bancos de Dados);
  • Logins são relacionados à Instância (Server) e Usuários, aos bancos de dados;
  • Cada login é um principal. Principal é tudo aquilo que pode sofrer uma ação chamada permissionamento;
  • Existem “principals” que possuem permissões já pré-definidas, embora você também possa criá-los. Tais principals são chamados de Role (Papel, função)

Mas…o que é uma role?

2- Roles: Analogia 

Maria Queren é uma analista de sistemas pela manhã, trabalhando em uma multinacional. De tarde, ela vai para sua empresa, onde é dona, a fim de tomar decisões gerenciais. No final da tarde, vai para o curso de inglês, onde é aluna. De noite, vai pra casa, onde é esposa e mãe. Nos finais de semana, passa o tempo na casa dos pais.

Notou o que seriam “roles”? Observe a variedade de papéis que a Maria possui. Analistas de Sistema, proprietária de negócio, estudante, mãe, esposa, filha… Cada papel deste traz uma série de poderes e possui uma determinada atuação em determinado contexto (ambiente). Maria pode dar gerenciar pessoas em sua empresa, mas não na instituição onde tem curso de inglês.

3 – Voltando ao SQL Server

Então, o SQL Server possui também alguns papéis de servidor, tanto em contexto de servidor como em contexto de banco de dados. É importante associar o contexto de servidor aos logins (autenticação) do que usuários (estes estão no escopo de banco de dados).  Cada papel possui uma série de privilégios, e garante ao principal associado X permissões. No caso em específico do assunto atual, que são roles de servidor, garante algumas permissões à nível de instância.

4-   Mas o que são mesmo Server Roles?

Se dividem em duas categorias: Fixed Server Roles (Leia-se Funções fixas, pré-definidas) e as Custom Server Roles (referenciadas oficialmente como User Defined Server Roles, que é uma novidade trazida pelo SQL Server 2012). Vamos começar da raíz, conhecendo cada uma das roles fixas.

As nove Roles Fixas de Servidor, linkadas neste tópico, são:

5 – Mas porque falar sobre Server Roles em outros posts? “Faz um resumão aê”

Pode parecer simples resumir poucas linhas sobre cada role acima (como é comumente visto pela internet). Porém, algumas roles são  extremamente peculiares, pois, possuem mais privilégios do que se comumente acredita que tenham e é difícil fixar isso sem teste. Algumas são irrelevantes no dia de hoje (em linhas gerais), outras fáceis de entender e outras bastante delicadas e que escondem um canhão (por exemplo, dbcreator) se mal utilizados.

Nas próximas postagens, vou seguir a ordem da lista acima e conversamos sobre as roles bulkadmin e dbcreator.
De antemão, caso tenha alguma pergunta ou queira dar uma sugestão sobre o assunto (e quiser fazer perguntas sobre as roles), não hesite em comentar ou entrar em contato. Todo e qualquer feedback é bem vindo, ok?

[]’s