28.11.2019 Views

BD1 - Conceitos Básicos

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!