Compartilhar via


Default Schema Groups no SQL Server 2012

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……

 

http://luanmorenodba.files.wordpress.com/2012/06/untitled_thumb7.png?w=339&h=240

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

 

http://luanmorenodba.files.wordpress.com/2012/06/image_thumb176.png?w=274&h=264

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

 

http://luanmorenodba.files.wordpress.com/2012/06/image_thumb177.png?w=225&h=32

 

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.

 

 

http://luanmorenodba.files.wordpress.com/2012/06/image_thumb178.png?w=527&h=330

(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.