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.