Segurança - Banco De Dados
Seminário: Segurança - Banco De Dados. Pesquise 862.000+ trabalhos acadêmicosPor: ffornari • 27/5/2014 • Seminário • 788 Palavras (4 Páginas) • 222 Visualizações
Lista de Exercícios: Integridade, Segurança e Privacidade
1) Considerando o que foi visto em sala de aula, faça o que se pede:
a) Conecte ao SGBD (sessão 1).
b) Crie um script para criar um login com o seu nome, para este usuário defina a senha ‘UTFPRBD’.
CREATE LOGIN NANDA WITH PASSWORD = ‘UTFPRBD’
c) Crie um script para criar um usuário vinculado ao login criado na questão 1, defina como default schema uma qualquer criada por você, não utilize bases do sistema. Use o mesmo nome para login e usuário.
USE [TESTE]
CREATE USER NANDA FROM LOGIN NANDA
WITH DEFAULT_SCHEMA = [TESTE]
d) Inicie uma nova conexão (sessão 2) e efetue login com o usuário que você acabou de criar.
e) Crie uma nova database na sessão 2 chamada BD_ISP. O que aconteceu? Por que aconteceu?
CREATE DATABASE BD_ISP
Não foi possível criar a tabela, pois o usuário criado não tem a Server Role dbcreator que possibilita criar bancos de dados.
f) Na sessão 1 e adicione para o usuário criado a server role “DBCREATOR”.
EXEC SP_ADDSRVROLEMEMBER ‘NANDA’,’DBCREATOR’
g) Na sessão 2 crie uma nova database chamada BD_ISP. O que aconteceu? Por que aconteceu?
CREATE DATABASE BD_ISP
Foi possível criar a tabela, pois foi concedido ao usuário NANDA a Server role dbcreator que possibilita ao usuário criar, alterar, descartar e restaurar qualquer banco de dados.
h) Na sessão 1 para a database que você definiu como default schema na questão C crie 2 tabelas e insira 3 registros em cada uma dela.
USE [TESTE]
CREATE TABLE ESTADO(
ID_ESTADO INT NOT NULL PRIMARY KEY,
NOME NVARCHAR(50),
SIGLA CHAR(2));
CREATE TABLE CIDADE(
ID_CIDADE INT NOT NULL PRIMARY KEY,
NOME NVARCHAR(50),
FK_ESTADO INT NOT NULL,
FOREIGN KEY (FK_ESTADO) REFERENCES ESTADO(ID_ESTADO));
INSERT INTO ESTADO VALUES(1,'RIO GRANDE DO SUL','RS');
INSERT INTO ESTADO VALUES(2,'SANTA CATARINA','SC');
INSERT INTO ESTADO VALUES(3,'PARANÁ','PR');
INSERT INTO CIDADE VALUES(1,'PORTO ALEGRE','1');
INSERT INTO CIDADE VALUES(2,'FLORIANÓPOLIS','2');
INSERT INTO CIDADE VALUES(3,'CURITIBA','3');
i) Explique porque o SGBD permitiu a execução dos itens G e H.
Permitiu a execução de criação de tabelas e inserção de dados pois estava utilizando o administrador que possui permissão sysadmin e este tipo de membro pode executar qualquer tipo de função no servidor.
j) Na sessão 2 execute um select nas tabelas criadas na questão H. O que aconteceu? Por que?
USE [TESTE]
SELECT EST.NOME AS ESTADO, CID.NOME AS CIDADE
FROM ESTADO EST
INNER JOIN CIDADE CID
ON EST.ID_ESTADO = CID.FK_ESTADO
Não permite o select pois o usuário não possui permissão para isso.
k) Na sessão 1 para a database que você definiu como default schema na questão C adicione a permissão de DB_DATAREADER para o login/usuário criados nas questões a e b. Refaça o select da questão J. O que aconteceu? Por que?
EXEC SP_ADDROLEMEMBER 'DB_DATAREADER','NANDA'
USE [TESTE]
SELECT EST.NOME AS ESTADO, CID.NOME AS CIDADE
FROM ESTADO EST
INNER JOIN CIDADE CID
ON EST.ID_ESTADO = CID.FK_ESTADO
Realizou pois foi concedido ao usuário a Role DB_DATAREADER que permite realizar os selects.
l) Na sessão 2 tente executar um insert em qualquer tabela existente nesta base. O que aconteceu? Por que?
USE [TESTE]
INSERT INTO ESTADO VALUES(4,’RIO DE JANEIRO’,’RJ’);
...