Schemas em banco de dados


 

Olá meu caro visitante, hoje falarei sobre schemas (esquemas) no SQL Server.

A partir do SQL Server 2005, a Microsoft introduziu o conceito de schemas, qualquer objeto de banco de dados deixou de pertencer a um usuário para pertencer a um Schema. Sendo assim, o Schema é a ponte de associação entre o usuário (ou grupo de usuários) e um (ou mais) objeto(s) de banco.

O uso de schemas é uma boa prática para organizar a estrutura e as permissões de um banco de dados SQL Server.

Quando um usuário é autorizado em um Schema, ele pode ser autorizado em vários bancos de dados ao mesmo tempo cujos objetos estejam inclusos dentro de um Schema.

Conceitos importantes:

  • A propriedade e objetos de esquemas  é transferível. Isso é feito usando o comando ALTER AUTHORIZATION.
  • Os objetos podem ser movidos entre esquemas. Isso é feito usando o comando ALTER SCHEMA.
  • Um único esquema pode conter objetos pertencentes a vários usuários de bancos de dados.
  • Permissões em esquemas e objetos contidos pelo esquema pode ser controlada com maior precisão do que nas versões anteriores. Isto é conseguido usando permissões de esquema GRANT objeto conceder permissões.

O comando CREATE SCHEMA cria um esquema no banco de dados corrente. O nome do esquema deve ser distinto do nome de todos os outros esquemas existentes no banco de dados corrente.

Criando um schema:

CREATE SCHEMA nome_esquema;

Para exemplificar irei primeiramente criar uma tabela sem esquema, no meu banco de dados BD_TECNOLOGIA. Observe que como não defini um esquema anteriormente o SQL Server irá criar automaticamente por default schema chamado: dbo (ele é público)
CREATE TABLE TbProduto
(
Id int identity,
Nome VARCHAR (50)
)

Screenshot_62

Criando um esquema “Empresa”.  Após executar o comando abaixo, expanda a aba security – > schemas, dentro do banco de dados que está sendo trabalhado.

CREATE SCHEMA Empresa

Screenshot_63

Agora já com o novo esquema, criarei uma nova tabela e irei referenciar a tabela ao esquema.

CREATE TABLE Empresa.Funcionarios
(
Id int identity,
Nome VARCHAR (50)
);

Screenshot_64

Para uma outra situação criei um novo schema “Pessoa”, e irei mudar o schema “Empresa” da tabela funcionarios.

Screenshot_65

ALTER SCHEMA Pessoa TRANSFER Empresa.Funcionarios

Screenshot_66

Adicionando informações a tabela.

[code language="sql"]
INSERT INTO [Pessoa].[Funcionarios]
VALUES
('Joao Vilar'),
('lucas Santos'),
('Daniele Hans')
[/code]

Screenshot_67

Para saber mais sobre permissões em esquemas acesse a pagina do MSDN.

databaseadmonfundamentalitprosdcchapter6-7-638

Valeu pela visita, e até mais.

🙂

Share on FacebookTweet about this on TwitterShare on LinkedIn


Escreva um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *