User-Definied Server Roles no SQL Server 2012

Posted on junho 30, 2012

1


 

Introdução

Regra de segurança e separação de tarefas são estratégias de todas as organizações. O objetivo principal de se possuir políticas de acesso, é limitar a um ou mais usuários ou grupos,  fazendo assim com que a ameaça a segurança e erros operacionais possa ser reduzido a zero.

 

Essas estratégias são realizadas a paritr de regras e assim se aplicando permissões para  e assim vinculado a um membro que possua o acesso devido.

 

Nas versões anteriores do SQL Server, a regra User-Definied garantia a segurança de acordo com os seus acessos. Porém em nível banco de dados esses acessos eram separados fazendo assim com que a as permissões tivessem que possuir um alto nível de granularidade.

 

Isso porque no nível servidor, os administradores possuiam acesso a regras fixas no servidor. As Server Roles eram fixas e não havia customização e nem granularidade no nível de permissões.

 

Em muita das vezes, DBA’s tinham que dar acesso elevado em nível servidor para um usuário, isso porque ele possua somente regras fixas em sua instância de banco de dados.

 

Com o novo SQL Server 2012 podemos agora realizar a criação de Use-Definied Server Roles que aumenta assim a flexibilidade e granularidade dos acessos facilitando o gerenciamento das permissões para cada usuário.

Criando no SSMS

Para realizar a criação da User-Definied Server Roles, clique em Security – Server Roles – New Server Role….

Untitled

(Figura 1 – Realizando a criação de uma nova Regra.)

 

image

 

image

 

(Figura 2 – Nome da regra, o proprietário, permisões de Criação e alteração de qualquer banco de dados.

 

image

(Figura 3 – Adicionando usuário a regra estabelecida.)

 

image

(Figura 4 – Como um membro de uma User-Definied Server Role tem quer ser membro de uma regra já estabelecida, selecione a regra mais cabível para o usuário no caso será setupadmin.)

 

image

(Figura 5 – Regra criada com sucesso.)

 

Criando em T-SQL

 

Nesse caso iremos criar uma User-Definied Server Role para grupos de disponibilidade do AlwaysOn.

 

USE master

GO

 

CREATE SERVER ROLE [UDSR – AvailabilityGroupAlwaysON] AUTHORIZATION sa

ALTER SERVER ROLE [UDSR – AvailabilityGroupAlwaysON] ADD MEMBER [LuanMoreno]

GRANT ALTER ANY AVAILABILITY GROUP TO [UDSR – AvailabilityGroupAlwaysON]

Agora verificamos a regra inserida….

 

 

SELECT *

FROM sys.server_principals

WHERE type = ‘R’

     AND principal_id >10

 

SELECT

  SRM.role_principal_id,

  SP.name AS Role_Name,

  SRM.member_principal_id,

  SP2.name AS Member_Name

 FROM sys.server_role_members AS SRM

  JOIN sys.server_principals AS SP

   ON SRM.Role_principal_id = SP.principal_id

  JOIN sys.server_principals AS SP2

   ON SRM.member_principal_id = SP2.principal_id

image

(Figura 6 – Informações da regra criada.)

 

 

Assim temos um regra nível servidor totalmente flexível e customizável…..