Default Schema Groups no SQL Server 2012

Posted on junho 30, 2012

1


 

Nas versões anteriores do SQL Server era possível definir um schema default (padrão) para um usuário do banco de dados. Essa ação aumenta a segurança e diminui esforços administrativos. O schema default é o primeiro schema a ser procurado quando se resolve o nomes dos objetos que foram referenciados a esse schema. Quando um esquema não existe para uma conta então é assumido como padrão o dbo.

 

Um dos grandes problema das versões anteriores do SQL Server era a incapacidade de definir um schema default para Windows Groups. Com isso, havia alguns problemas díficeis de seram solucionados. Por exemplo se um usuário realizar a criação de uma tabela, então um novo esquema será criado e  o nome default do esquema será o mesmo.

 

Ou seja se houvesse 120 usuários vinculados a um Windows Group e cada um desses usuários criassem objetos dentro do banco de dados, o problema é que o administrador teria que gerenciar os 120 esquemas.

 

Felizmente, no SQL Server 2012 o gerenciamento de schema para 0 Windows Group está totalmente reformulado, Agora Default Schema pode ser criado pelo Windows Group fazendo assim com que somente haja um schema principal, lembrando que para isso o mesmo deve ser marcado como default schema.

 

Para demonstração iremos criar um grupo e vincular logins a ele……

 

Untitled

(Figura 1 – Criação de um Windows Group.)

 

image

(Figura 2 – Criando um grupo de nome DefaultSchemaGroupsSQLServer e vinculando logins a ele.)

 

image

 

Depois do grupo criado e possuindo usuários vinculados e ele, iremos realizar a criação desse usuário no SQL Server .

 

USE master

go

 

–Criando Usuário

CREATE USER [LuanSonyVaio\DefaultSchemaGroupsSQLServer]

GO

 

–Database Role Membership    

ALTER ROLE DB_DATAREADER ADD MEMBER [LuanSonyVaio\DefaultSchemaGroupsSQLServer]

ALTER ROLE DB_DATAWRITER ADD MEMBER [LuanSonyVaio\DefaultSchemaGroupsSQLServer];

GO

 

–Criando o  Default Schema para Group

CREATE SCHEMA Dados AUTHORIZATION[LuanSonyVaio\DefaultSchemaGroupsSQLServer];

GO

— Default Schema para o Group

ALTER USER [LuanSonyVaio\DefaultSchemaGroupsSQLServer] WITH DEFAULT_SCHEMA = Dados

GO

 

Primeiramente criamos o grupo dentro do SQL Server, após isso concedemos permissão para mesmo. Com isso criamos um schema autorizando o Windows Group e logo em seguida selecionamos esse schema como padrão. Sendo assim independente da quantidade de usuários que estiverem dentro grupo, o grupo terá um schema padrão, nesse caso chamado de Dados.

 

 

image

(Figura 3 – Visualizando o schema criado e vinculado para o Windows Group.)

 

–Criando a Tabela com o Grupo e o Default Schema

CREATE TABLE Dados.QuantidadeEmpregados(ID INT)

GO

 

–Inserindo Registro

INSERT INTO Dados.QuantidadeEmpregados VALUES (1)

O registro foi inserido com sucesso. Agora teremos uma melhor administração de schema dentro do SQL Server 2012.