You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
Criando Banco de
Dados e Tabelas
Criando Banco de Dados e Tabelas 2828/11/2019
de novembro de 2019
1
A Linguagem SQL
• SQL – Structured Query Language.
• Sua primeira versão recebeu o nome de SEQUEL - Structured
English Query Language.
• É uma linguagem declarativa, com o foco centrado no resultado,
onde:
• O usuário descreve o dado desejado, sem especificar como
obtê-lo;
• O SGBD determina o melhor procedimento para realizar essa
tarefa.
• Poupa tempo de programação, mas exige tempo para projeto.
Criando Banco de Dados e Tabelas 28/11/2019
2
A Linguagem SQL
• Foi definida por D. D. Chamberlin e outros, nos laboratórios de
pesquisa da IBM em San Jose, California, em 1974, dentro do
projeto System R.
• Teve seus fundamentos no modelo relacional de E. F. Codd,
criado em 1970.
• Órgãos como ANSI (American National Standards Institute) e ISO
(International Organization for Standardization) adotaram a SQL
como o padrão oficial de linguagem em ambiente relacional.
• Existem vários dialetos SQL que adotam o padrão ANSI com
extensões proprietárias de cada fabricante.
Criando Banco de Dados e Tabelas 28/11/2019
3
A Padronização
• SQL-86 - primeiro padrão da linguagem SQL, definido pelo ANSI
em 1986 e aceito pela ISO em 1987.
• SQL-89 - nova versão da linguagem, lançado pelo ANSI em 1989,
em que foram adicionados recursos importantes como chave
primária, chave estrangeira e valores nulos.
• SQL-92 - padrão ANSI aceito pela ISO, em 1992, também
conhecido como SQL-2. Alterações como domínios, tabelas
temporárias, novos tipos de junção (LEFT e RIGTH JOIN), cláusula
AS, valores únicos (UNIQUE), expressões na cláusula FROM, entre
outras, foram incluídas neste padrão.
Criando Banco de Dados e Tabelas 28/11/2019
4
A Padronização
• SQL-99 – padrão ANSI aceito pela ISO em 1999, também
conhecido como SQL-3. Introduziu mudanças significativas como
novos tipos de dados complexos, consultas recursivas e
características de orientação a objetos, entre outras.
• SQL-2003 – é o padrão mais recente, criado em 2003, que
introduz, principalmente, recursos ligados ao uso de XML.
Criando Banco de Dados e Tabelas 28/11/2019
5
O Transact SQL
• É uma linguagem de definição, manipulação e controle de dados,
definida pela Microsoft Corporation.
• As instruções Transact SQL são divididas em:
• Instruções DDL (Data Definition Language), que permitem
criar objetos do banco de dados;
• Instruções DML (Data Manipulation Language), que permitem
consultar e modificar dados;
• Instruções DCL (Data Control Language), que permitem definir
privilégios aos usuários.
Criando Banco de Dados e Tabelas 28/11/2019
6
Instruções DDL
• As instruções DDL definem os objetos do banco de dados,
criando, alterando ou excluindo:
• o banco de dados e tabelas;
• os índices, procedures, triggers, views e outros objetos
• As instruções DDL são:
• CREATE <nome do objeto> - criar objetos
• ALTER <nome do objeto> - alterar objetos
• DROP <nome do objeto> - excluir objetos
• O usuário deverá possuir as permissões apropriadas.
Criando Banco de Dados e Tabelas 28/11/2019
7
Instruções DML
• As instruções DML recuperam informações ou alteram dados,
permitindo consultar, inserir, modificar e excluir dados.
• As instruções DML são:
• SELECT - consultar dados
• INSERT - inserir dados
• UPDATE - alterar dados
• DELETE - excluir dados
• O usuário deverá possuir as permissões apropriadas.
Criando Banco de Dados e Tabelas 28/11/2019
8
Instruções DCL
• As instruções DCL alteram as permissões associadas aos usuários
do banco de dados.
• As instruções DCL são:
• GRANT - adiciona permissão.
• DENY - nega permissão.
• REVOKE - remove uma permissão concedida
ou negada anteriormente.
• O usuário deverá possuir as permissões apropriadas.
Criando Banco de Dados e Tabelas 28/11/2019
9
Tipos de Bancos de Dados
• Cada SQL Server possui dois tipos de bancos de dados:
• Bancos de dados de sistema: contêm informações sobre o
servidor. São utilizados pelo SQL Server para operar e
gerenciar o sistema.
• Bancos de dados de usuário: são criados pelos usuários para
armazenar seus dados.
• Quando o SQL Server é instalado, são criados os bancos de dados
de sistema e alguns bancos de dados de usuários, como
exemplos.
Criando Banco de Dados e Tabelas 28/11/2019
10
Tipos de Bancos de Dados
Bancos de dados
do sistema
Banco de dados
do usuário
Criando Banco de Dados e Tabelas 28/11/2019
11
Tipos de Bancos de Dados
• MASTER: Registra toda a informação de nível de sistema para
uma instância do SQL Server.
• MSDB: É usado pelo SQL Server Agent para programar alertas e
trabalhos.
• MODEL: É usado como modelo de todos os bancos de dados
criados na instância do SQL Server. As modificações feitas neste,
banco de dados serão aplicadas a qualquer banco de dados
criados em seguida e que utilizem esse modelo.
• TEMPDB: É um espaço de trabalho para reter objetos
temporários ou conjuntos de resultados intermediários.
Criando Banco de Dados e Tabelas 28/11/2019
12
Arquivos de um Banco de Dados
• Um banco de dados é composto por três tipos diferentes de
arquivos. São eles:
• Primário: o arquivo de dados primário contém as informações
de inicialização do banco de dados e ponteiros para os outros
arquivos do bd. Armazena os dados do usuário e objetos e
todo banco de dados possui um único arquivo desse tipo. Este
arquivo é criado com a extensão mdf.
• Secundário: Os arquivos de dados secundários são opcionais,
definidos pelo usuário e armazenam dados. São usados para
distribuir os dados em diversos arquivos, geralmente es discos
diferentes. Um banco de dados pode conter vários arquivos
desse tipo. Este arquivo é criado com a extensão ndf.
Criando Banco de Dados e Tabelas 28/11/2019
13
Arquivos de um Banco de Dados
• Log: é o arquivo utilizado para guardar as informações
referentes ao registro das transações usadas fazer a
recuperação do banco de dados. Deve haver, pel omenos, um
arquivo de log para cada banco de dados. Este arquivo é
criado com a extensão ldf.
• Cada banco de dados deve utilizar, pelo menos, um arquivo de
dados Primário (extensão mdf) e um arquivo de Log (extensão
ldf).
• Também podem ser criados múltiplos arquivos de dados
Secondários (extensão ndf) e múltiplos arquivos de Log
(extensão ldf).
Criando Banco de Dados e Tabelas 28/11/2019
14
Criando um Banco de Dados
• Ao criar um banco de dados, poderão ser definidas as seguintes
opções para os arquivos de dados e de log:
• Nome e local dos arquivos;
• Tamanho inicial;
• Tamanho máximo;
• Taxa de crescimento.
• Se o banco de dados for criado sem essas especificações, ele terá
a mesma configuração do banco de dados Model.
Criando Banco de Dados e Tabelas 28/11/2019
15
Criando um Banco de Dados
Sintaxe:
CREATE DATABASE nome do banco de dados
[ ON
(definição de parâmetros do arquivo de dados) ]
LOG ON
(definição de parâmetros do arquivo de log) ]
parâmetros
NAME = nome lógico
FILENAME = caminho e nome do arquivo
SIZE = tamanho inicial
MAXSIZE = tamanho máximo
FILEGROWTH = taxa de crescimento
Criando Banco de Dados e Tabelas 28/11/2019
16
Criando um Banco de Dados
Exemplo 1: Criar o banco de dados CLIENTES especificando apenas
o arquivo de dados.
CREATE DATABASE Clientes
ON
( NAME = Clientes_dat,
FILENAME = 'c:\dados\clientes.mdf',
SIZE = 100 MB,
MAXSIZE = 10 GB,
FILEGROWTH = 20 MB )
• O arquivo de log será criado de acordo com os parâmetros
definidos no banco de dados MODEL.
Criando Banco de Dados e Tabelas 28/11/2019
17
Criando um Banco de Dados
Exemplo 2: Criar o banco de dados VENDAS especificando um
arquivo de dados e um arquivo de log.
CREATE DATABASE Vendas
ON
( NAME = Vendas_dat,
FILENAME = 'c:\dados\vendas.mdf',
SIZE = 100 MB,
MAXSIZE = 10 GB,
FILEGROWTH = 20 MB )
LOG ON
( NAME = Vendas_log,
FILENAME = 'c:\dados\vendas.ldf',
SIZE = 50 MB,
MAXSIZE = 5 GB,
FILEGROWTH = 20 MB )
Criando Banco de Dados e Tabelas 28/11/2019
18
Criando um Banco de Dados
Exemplo 3: Criar o banco de dados PRODUTOS especificando
múltiplos arquivos de dados e de log.
CREATE DATABASE Produtos
ON
( NAME = Produtos1_dat,
FILENAME = 'c:\dados\produtos1.mdf',
SIZE = 100 MB,
MAXSIZE = 10 GB,
FILEGROWTH = 20% ),
( NAME = Produtos2_dat,
FILENAME = 'c:\dados\produtos2.ndf',
SIZE = 100 MB,
MAXSIZE = 10 GB,
FILEGROWTH = 20% ),
Criando Banco de Dados e Tabelas 28/11/2019
19
Criando um Banco de Dados
( NAME = Produtos3_dat,
FILENAME = 'c:\dados\produtos3.ndf',
SIZE = 100 MB,
MAXSIZE = 10 GB,
FILEGROWTH = 20% )
LOG ON
( NAME = Produtos1_log,
FILENAME = 'c:\dados\produtos1.ldf',
SIZE = 50 MB,
MAXSIZE = 5 GB,
FILEGROWTH = 10% ),
( NAME = Produtos2_log,
FILENAME = 'c:\dados\produtos2.ldf',
SIZE = 50 MB,
MAXSIZE = 5 GB,
FILEGROWTH = 10% )
Criando Banco de Dados e Tabelas 28/11/2019
20
Verificando um Banco de Dados
• É possível exibir informações sobre os bancos de dados
existentes no servidor e seus parâmetros, através das seguintes
stored procedures do sistema:
• sp_helpdb
• fornece informações sobre todos os bancos de dados de um
servidor.
• sp_helpdb nome do banco de dados
• fornece informações sobre o banco de dados especificado.
Criando Banco de Dados e Tabelas 28/11/2019
21
Modificando um Banco de Dados
Sintaxe:
ALTER DATABASE nome do banco de dados
ADD FILE especificação do arquivo de dados
| ADD LOG FILE especificação do arquivo de log
| REMOVE FILE nome lógico do arquivo
| MODIFY FILE especificação do arquivo
• O banco de dados que será modificado não poderá estar em uso.
Criando Banco de Dados e Tabelas 28/11/2019
22
Modificando um Banco de Dados
Exemplo 1: Acrescentar um novo arquivo de dados ao banco de
dados CLIENTES.
ALTER DATABASE Clientes
ADD FILE
( NAME = Clientes_dat2,
FILENAME = 'c:\dados\clientes2.ndf',
SIZE = 100 MB,
MAXSIZE = 10 GB,
FILEGROWTH = 20 MB )
Criando Banco de Dados e Tabelas 28/11/2019
23
Modificando um Banco de Dados
Exemplo 2: Acrescentar um novo arquivo de log ao banco de dados
CLIENTES.
ALTER DATABASE Clientes
ADD LOG FILE
( NAME = Clientes_log2,
FILENAME = 'c:\dados\clientes2.ldf',
SIZE = 50 MB,
MAXSIZE = 5 GB,
FILEGROWTH = 20 MB )
Criando Banco de Dados e Tabelas 28/11/2019
24
Modificando um Banco de Dados
Exemplo 3: Acrescentar dois arquivos de dados ao banco de dados
PRODUTOS.
ALTER DATABASE Produtos
ADD FILE
( NAME = Produtos4_dat,
FILENAME = 'c:\dados\produtos4.ndf',
SIZE = 100 MB,
MAXSIZE = 10 GB,
FILEGROWTH = 20 MB ),
( NAME = Produtos5_dat,
FILENAME = 'c:\dados\produtos5.ndf',
SIZE = 100 MB,
MAXSIZE = 10 GB,
FILEGROWTH = 20 MB )
Criando Banco de Dados e Tabelas 28/11/2019
25
Modificando um Banco de Dados
Exemplo 4: Remover o arquivo produtos4.ndf do banco de dados
PRODUTOS.
ALTER DATABASE Produtos
REMOVE FILE produtos4.dat
Exemplo 5: Aumentar o tamanho do arquivo vendas.mdf do banco
de dados VENDAS para 200MB e o tamanho máximo para 20 GB.
ALTER DATABASE Vendas
MODIFY FILE
( NAME = 'Vendas_dat',
SIZE = 200 MB,
MAXSIZE = 20 GB )
Criando Banco de Dados e Tabelas 28/11/2019
26
Excluindo um Banco de Dados
Sintaxe:
DROP DATABASE nome do banco de dados
• A exclusão de um banco de dados remove do disco todos os
arquivos utilizados pelo banco de dados.
• O banco de dados que será excluído não poderá estar em uso.
Criando Banco de Dados e Tabelas 28/11/2019
27
Excluindo um Banco de Dados
Exemplo 1: Excluir o banco de dados CLIENTES.
DROP DATABASE Clientes
Exemplo 2: Excluir os bancos de dados PRODUTOS e VENDAS
DROP DATABASE Produtos, Vendas
Criando Banco de Dados e Tabelas 28/11/2019
28
Criando Tabelas
• A criação das tabelas deverá ser feita de acordo com o dicionário
de dados, definido no esquema lógico.
• Ao criar tabelas, deverão ser definidos previamente:
• Nome, tamanho e tipo de dado de cada coluna;
• Chaves primárias, estrangeiras e candidatas;
• Colunas que aceitam valores nulos;
• Restrições de domínio para cada coluna;
• Restrições da tabela.
Criando Banco de Dados e Tabelas 28/11/2019
29
Criando Tabelas
• Ao criar uma tabela deve-se observar as seguintes regras:
• O nome de uma tabela deverá ser único em um banco de
dados;
• Cada coluna deverá ser criada através da especificação do seu
nome, tipo e tamanho do dado que irá armazenar e,
opcionalmente, a permissão de valor assumir valores nulos e
restrições (constraints) impostas ao conteúdo;
• O nome de uma coluna deverá ser único dentro de cada
tabela podendo, entretanto, existir colunas com o mesmo
nome em tabelas diferentes.
Criando Banco de Dados e Tabelas 28/11/2019
30
Criando Tabelas - Identificadores
• O identificador da tabela pode ter até 128 caracteres;
• O primeiro caractere deve ser uma letra ou #, ou _ (sublinhado):
• # - utilizado para tabelas temporárias locais;
• ## - utilizado para tabelas temporárias globais.
• Depois do primeiro caractere podem ser usados caracteres
alfanuméricos ou os símbolos #, $ e _ (sublinhado);
• Podem ser usados espaços em identificadores, mas para fazer
referência a esses objetos deve-se delimitar o nome por aspas
duplas ou colchetes.
Criando Banco de Dados e Tabelas 28/11/2019
31
Tipos de Dados
• Números inteiros: bigint, int, smallint, tinyint
Tipo de dado Intervalo Armazenamento
bigint
int
de -2 63 (-9223372036854775808)
a 2 63-1 (-9223372036854775807)
de -2 31 (-2147483648)
a 2 31-1 (-2147483648)
8 bytes
4 bytes
smallint de -2 15 (-32768) a 2 15-1 (-32767) 2 bytes
tinyint de 0 a 255 1 byte
Criando Banco de Dados e Tabelas 28/11/2019
32
Tipos de Dados
• Números decimais: numeric(p[,s]) e decimal(p[,s])
Tipo de dado Intervalo Armazenamento
numeric
decimal
p
de -10 38 +1 a 10 38 -1 )
Armazenamento
1 – 9 5 bytes
10 – 19 9 bytes
20 – 28 13 bytes
29 - 38 17 bytes
variável
Depende de p
Criando Banco de Dados e Tabelas 28/11/2019
33
Tipos de Dados
• Valores monetários: money, smallmoney
Tipo de dado Intervalo Armazenamento
money
smallmoney
de -922.337.203.685.477,5808
a 922.337.203.685.477,5807
de -214.748,3648
a 214.748,3647
8 bytes
4 bytes
Criando Banco de Dados e Tabelas 28/11/2019
34
Tipos de Dados
• Valores de data: date, time, datetime, smalldatetime
Tipo de dado Intervalo Armazenamento
date data de 01/01/0001 a 31/12/9999 3 bytes
time de 00:00:00 a 23:59:29 5 bytes
datetime
smalldatetime
data de 01/01/1753 a 31/12/9999
hora de 00:00:00 a 23:59:29
data de 01/01/1900 a 06/06/2079
hora de 00:00:00 a 23:59:29
8 bytes
4 bytes
Criando Banco de Dados e Tabelas 28/11/2019
35
Tipos de Dados
• Cadeia de caracteres: char(n) e varchar(n)
Tipo de dado Intervalo Armazenamento
char(n)
varchar(n)
varchar(max)
string com comprimento fixo de
até 8000 caracteres
string com comprimento variável
de até 8000 caracteres
string com comprimento variável
de até 2 GB
até 8000 bytes
até 8000 bytes
até 2 GB
Criando Banco de Dados e Tabelas 28/11/2019
36
Criando Tabelas
Sintaxe:
CREATE TABLE nome da tabela
( nome_da_coluna tipo_de_dado [ tamanho [, decimais]]
[ NULL | NOT NULL ]
[ IDENTITY [(origem, incremento) ]] )
[ restrições de coluna ]
[ restrições de tabela ]
Criando Banco de Dados e Tabelas 28/11/2019
37
Criando Tabelas
• NULL | NOT NULL
• Indica se o atributo é opcional (NULL) ou obrigatório (NOT
NULL). Isso define se o valor do atributo deverá ser informado
no momento de inserir o dado. Se omitido, o valor default é
NULL.
• IDENTITY
• Indica que o atributo é um valor com auto-incremento.
• O seu valor não deverá ser informado nas operações de
inserção de dados.
• O valor inicial e o incremento da auto-numeração podem ser
definidos. Se omitido, o valor default é (1,1).
Criando Banco de Dados e Tabelas 28/11/2019
38
Criando Tabelas - Restrições
• Também chamadas de constraints, são condições que garantem
que valores válidos sejam inseridos nas colunas e que os
relacionamentos entre as tabelas sejam mantidos.
• Se dividem em:
• Restrição de coluna: quando a restrição se aplica a uma única
coluna da tabela.
• Restrição de tabela: quando a restrição faz referência a várias
colunas da tabela.
Criando Banco de Dados e Tabelas 28/11/2019
39
Criando Tabelas - Restrições
• As constraints são:
• Primary Key
• Define uma chave primária.
• Foreign Key
• Define uma chave estrangeira.
• Unique
• Define uma chave candidata.
• Check
• Define uma restrição de domínio.
• Default
• Define um valor default para o atributo.
Criando Banco de Dados e Tabelas 28/11/2019
40
Criando Tabelas - Primary Key
• É utilizada para definir a chave primária da tabela;
• Impede a inclusão de valores duplicados para a coluna;
• Cria um índice na coluna para melhorar o desempenho;
• Uma tabela pode conter apenas uma restrição PRIMARY KEY;
• Em uma chave primária composta, os nomes das colunas devem
ser separados por vírgulas e todas elas devem ser definidas como
NOT NULL.
Criando Banco de Dados e Tabelas 28/11/2019
41
Criando Tabelas - Foreign Key
• É utilizada para definir uma chave estrangeira para a tabela;
• Todo valor não nulo introduzidos na coluna com uma restrição
FOREGN KEY deve existir na chave primária da tabela
referenciada;
• O número de colunas e tipos de dados das colunas especificadas
em uma restrição FOREIGN KEY devem coincidir com as colunas
da tabela referenciada.
• O nome de uma coluna com restrição FOREIGN KEY não precisa,
ter, necessariamente, o mesmo nome da coluna da chave
primária da tabela referenciada, mas deve possuir o mesmo tipo
de dado dessa tabela.
Criando Banco de Dados e Tabelas 28/11/2019
42
Criando Tabelas - Unique
• É utilizada para definir a chave candidata da tabela;
• Impede a inclusão de valores duplicados para a coluna;
• Cria um índice na coluna para melhorar o desempenho.
Criando Banco de Dados e Tabelas 28/11/2019
43
Criando Tabelas - Check
• É utilizada para definir restrições de domínio.
• Uma coluna pode possuir várias restrições CHECK e os critérios
podem incluir diversas expressões lógicas combinadas com AND
e OR. As restrições são validadas pela ordem da criação.
• Uma restrição CHECK de coluna não pode fazer referência a
outras colunas da tabela.
• Uma restrição CHECK de tabela pode fazer referência a outras
colunas da tabela, mas não pode referenciar colunas de outras
tabelas.
Criando Banco de Dados e Tabelas 28/11/2019
44
Criando Tabelas - Default
• É utilizada para definir um valor padrão para uma coluna quando
esse valor não for especificado em um comando INSERT.
• Uma coluna contendo uma constraint DEFAULT deverá ser
definida como NULL. O valor default possui prioridade.
• Uma coluna pode ter apenas uma restrição DEFAULT.
• Uma restrição DEFAULT não pode fazer referência a outra coluna.
• O valor atribuído em uma restrição DEFAULT deve estar de
acordo com o tipo de dado da coluna.
• Uma restrição DEFAULT pode conter valores constantes ou
funções do sistema.
Criando Banco de Dados e Tabelas 28/11/2019
45
Criando Tabelas - Exemplos
BANCO DE DADOS CONTPEDIDO
Esquema Conceitual
Esquema Lógico
Script SQL
Criando Banco de Dados e Tabelas 28/11/2019
46
Modificando Tabelas
Sintaxe:
ALTER TABLE nome_da_tabela
ALTER COLUMN nome_da_coluna novo_tipo_de_dado
[ NULL | NOT NULL ]
| ADD definição_da_coluna
| ADD CONSTRAINT definição_da_constraint
| DROP COLUMN nome_da_coluna
| DROP [ CONSTRAINT ] nome_da_constraint
Criando Banco de Dados e Tabelas 28/11/2019
47
Modificando Tabelas
Exemplo 1: Inserir a coluna cpf do tipo char(11) na tabela CLIENTES
do banco de dados COMPRAS.
USE Compras;
ALTER TABLE Clientes ADD cpf char(11);
Exemplo 2: Adicionar uma constraint CHECK na coluna cpf da tabela
CLIENTES do banco de dados COMPRAS, de modo que o tamanho
do campo seja de 11 caracteres.
USE Compras;
ALTER TABLE Clientes
ADD CONSTRAINT CK_Clientes_cpf CHECK (LEN(cpf)=11);
Criando Banco de Dados e Tabelas 28/11/2019
48
Modificando Tabelas
Exemplo 3: Inserir a coluna cpf do tipo char(11) na tabela CLIENTES
do banco de dados COMPRAS com uma constraint CHECK para
validar o tamanho com 11 dígitos e uma constraint UNIQUE para
definir o atributo como sendo uma chave candidata.
USE Compras;
ALTER DATABASE Clientes ADD cpf1 char(11)
CONSTRAINT CK_clientes_cpf CHECK (cpf LIKE '[1-9]
[1-9][1-9][1-9][1-9][1-9][1-9][1-9][1-9][1-9][1-9] ')
CONSTRAINT AK_clientes_cpf UNIQUE;
Criando Banco de Dados e Tabelas 28/11/2019
49
Modificando Tabelas
Exemplo 4: Excluir a coluna cpf da tabela CLIENTES do banco de
dados COMPRAS.
USE Compras;
ALTER TABLE Clientes DROP COLUMN cpf1;
/* Deu erro. É necessário primeiro excluir as
constrainst para depois excluir as tabelas.*/
ALTER TABLE Clientes
DROP CONSTRAINT CK_clientes_cpf1;
ALTER TABLE Clientes
DROP CONSTRAINT AK_clientes_cpf1;
ALTER TABLE Clientes DROP COLUMN cpf1;
Criando Banco de Dados e Tabelas 28/11/2019
50
Criando Usuários
• Para criar um usuário em um banco de dados do SQL Server é
necessário:
1. Criar uma conta de login;
• Um login representa uma permissão de acesso para o SQL
Server.
• Uma conta de login recebe a atribuição de um banco de
dados padrão.
• A atribuição de um banco de dados padrão não cria uma
conta de usuário nesse banco, mas define o contexto para
as ações que o usuário pode executar. Se omitido, o
banco de dados padrão será o master.
Criando Banco de Dados e Tabelas 28/11/2019
51
Criando Usuários
2. Criar um usuário e mapeá-lo para o login criado
• O usuário representa a pessoa que poderá acessar o
banco de dados desejado.
• Após o mapeamento para o login é que o usuário
conseguirá se logar no SQL Server e entrar nos bancos de
dados desejados.,
• É necessário que o usuário tenha permissão para realizar
operações em cada um dos bancos de dados
Criando Banco de Dados e Tabelas 28/11/2019
52
Criando Usuários
3. Dar as permissões necessárias para o novo usuário.
• Definir quais as operações que o usuário pode executar
no banco de dados.
• Permissões da tabelas e views: controlam a execução das
instruções de SELECT, INSERT, UPDATE e DELETE em uma
tabela.
• Permissões de colunas: controlam a execução das
instruções de SELECT, UPDATE em colunas de uma tabela.
• Permissões de stored procedure: controlam a permissão
de executar stored procedures através do comando
EXECUTE.
Criando Banco de Dados e Tabelas 28/11/2019
53
Criando uma Conta de Login
Sintaxe:
CREATE LOGIN nome_login WITH PASSWORD = 'password'
Exemplo 1: Criar um login chamado acesso1 com a senha 'teste'.
CREATE LOGIN acesso1 WITH PASSWORD = 'teste'
• É criada a conta de login chamada acesso1.
• Como não existe banco de dados associado a esta conta de login,
apenas o banco de dados master poderá ser acessado.
Criando Banco de Dados e Tabelas 28/11/2019
54
Criando um Usuário
Sintaxe:
CREATE USER nome_usuario FROM login
Exemplo 1: Criar um usuário chamado 'user1' com o login 'acesso1'.
USE ContPedido;
CREATE USER user1 FROM login acesso1
• É criado o usuário user1 com acesso ao banco de dados que está em
uso.
• É necessário definir as permissões do usuário no banco de dados.
Criando Banco de Dados e Tabelas 28/11/2019
55
Concedendo Permissão para uma Tabela
Sintaxe:
GRANT permissão ON tabela TO usuário
Exemplo 1: Conceder a permissão de SELECT na tabela cliente para
o usuário user1.
USE ContPedido;
GRANT SELECT ON cliente TO user1
• É concedida a permissão ao usuário user1 para executar o
comando SELECT na tabela cliente do banco de dados
ContPedido (está em uso).
Criando Banco de Dados e Tabelas 28/11/2019
56
Negando Permissão para uma Tabela
Sintaxe:
DENY permissão ON tabela TO usuário
Exemplo 1: Negar a permissão de SELECT na tabela cliente para o
usuário user1.
USE ContPedido;
DENY SELECT ON cliente TO user1
• É negada a permissão ao usuário user1 para executar o comando
SELECT da tabela cliente do banco de dados ContPedido (está
em uso).
Criando Banco de Dados e Tabelas 28/11/2019
57
Concedendo Permissão para uma Coluna
Sintaxe:
GRANT permissão ON tabela(coluna) TO usuário
Exemplo 1: Conceder a permissão de SELECT na coluna nome da
tabela cliente para o usuário user1.
USE ContPedido;
GRANT SELECT ON cliente(nome) TO user1
• É concedida a permissão ao usuário user1 para executar o
comando SELECT na coluna nome da tabela cliente do banco de
dados ContPedido (está em uso).
Criando Banco de Dados e Tabelas 28/11/2019
58
Negando Permissão para uma Coluna
Sintaxe:
DENY permissão ON tabela(coluna) TO usuário
Exemplo 1: Negar a permissão de SELECT na coluna nome da tabela
cliente para o usuário user1.
USE scp;
DENY SELECT ON cliente(nome) TO user1
• É negada a permissão ao usuário user1 para executar o comando
SELECT na coluna nome da tabela cliente do banco de dados
ContPedido (está em uso).
Criando Banco de Dados e Tabelas 28/11/2019
59
Copyright © 2018 Nilton Freire Santos. Todos os direitos reservados.
Criando Banco de Dados e Tabelas 28/11/2019
60