Lomadee, uma nova espécie na web. A maior plataforma de afiliados da América Latina.

terça-feira, 4 de outubro de 2011

SQL Server 2008 - Modulo 04 - Curso 6231



--Aula 01 - Segurança do Servidor
====================================================================================
-- Autor        : Lineu Alves Lima Filho
-- Data Criação    : 19/11/2009
-- Descrição    : Módulo 03 -> Managing Security
-- ====================================================================================
-- Versão        : 1.0
-- ====================================================================================
-- Versão            :
-- Data Atualização    :
-- ====================================================================================


--###############################################
--                    Nível 1
--###############################################


--Mudar o modo de autenticação para "SQL Server and Windows Authentication mode" (Mixed Mode)


--Criar o usuário Julia no servidor de domínio



--Windows authentication
USE [master]
GO
CREATE LOGIN [NY-SQL-01\julia]
FROM WINDOWS
WITH DEFAULT_DATABASE = AdventureWorks2008
GO


USE [AdventureWorks2008]
GO

CREATE USER [NY-SQL-01\julia]
FOR LOGIN [NY-SQL-01\julia]
GO

EXEC sp_addrolemember 'db_datareader', 'NY-SQL-01\julia'
GO



--SQL Server authentication
USE [master]
GO
CREATE LOGIN [alice]
WITH PASSWORD='Pa$$w0rd' MUST_CHANGE,
DEFAULT_DATABASE=AdventureWorks2008,
CHECK_EXPIRATION=ON,
CHECK_POLICY=ON
GO



--Desabilitando um login
ALTER LOGIN alice DISABLE
GO


--Habilitando um login
ALTER LOGIN alice ENABLE
GO


--Desbloqueando um login
ALTER LOGIN alice
WITH PASSWORD = 'NewPa$$w0rd' UNLOCK
GO


--Removendo um login
DROP LOGIN alice
GO


--Recriando o login da alice
USE [master]
GO
CREATE LOGIN [alice]
WITH PASSWORD='Pa$$w0rd',
DEFAULT_DATABASE=AdventureWorks2008
GO



--Aula 02 - Segurança da Instância
-- ====================================================================================
-- Autor        : Lineu Alves Lima Filho
-- Data Criação    : 19/11/2009
-- Descrição    : Módulo 03 -> Managing Security
-- ====================================================================================
-- Versão        : 1.0
-- ====================================================================================
-- Versão            :
-- Data Atualização    :
-- ====================================================================================


--###############################################
--                    Nível 2
--###############################################

--Concedendo permissão - sysadmin
EXEC sp_addsrvrolemember 'alice', 'sysadmin'
GO


--Concedendo permissão - dbcreator
EXEC sp_addsrvrolemember 'alice', 'dbcreator'
GO


--Removendo permissão - sysadmin
EXEC sp_dropsrvrolemember 'alice', 'sysadmin'
GO


--Removendo permissão - sysadmin
EXEC sp_dropsrvrolemember 'alice', 'dbcreator'
GO



--Aula 03 - Criando Credencial
-- ====================================================================================
-- Autor        : Lineu Alves Lima Filho
-- Data Criação    : 19/11/2009
-- Descrição    : Módulo 03 -> Managing Security
-- ====================================================================================
-- Versão        : 1.0
-- ====================================================================================
-- Versão            :
-- Data Atualização    :
-- ====================================================================================


--###############################################
--                    Nível 3
--###############################################

--Criando um CREDENTIAL
CREATE CREDENTIAL ActiveX WITH IDENTITY = 'alice',
SECRET = 'D1sn8yL@nd'    --> Opcional
GO



--Aula 04 - Permissão de Escopo de Servidor
-- ====================================================================================
-- Autor        : Lineu Alves Lima Filho
-- Data Criação    : 19/11/2009
-- Descrição    : Módulo 03 -> Managing Security
-- ====================================================================================
-- Versão        : 1.0
-- ====================================================================================
-- Versão            :
-- Data Atualização    :
-- ====================================================================================


--###############################################
--        Nível 4        Server-Scope Permissions
--###############################################

--Concedendo permissão no nível de servidor
USE [master]
GO
GRANT ALTER ANY LOGIN
TO alice
GO


--Criando um login SQL Server
USE [master]
GO
CREATE LOGIN lucas
WITH PASSWORD = 'Pa$$w0rd',
DEFAULT_DATABASE = AdventureWorks2008


--Alice tem permissão para alterar o login do Lucas
GRANT ALTER ON LOGIN::lucas
TO alice
GO



--Aula 05 - Roles de Banco de Dados

-- ====================================================================================
-- Autor        : Lineu Alves Lima Filho
-- Data Criação    : 19/11/2009
-- Descrição    : Módulo 03 -> Managing Security
-- ====================================================================================
-- Versão        : 1.0
-- ====================================================================================
-- Versão            :
-- Data Atualização    :
-- ====================================================================================


--###############################################
--        Nível 5        Database Roles
--###############################################

--Criando um usuário
USE AdventureWorks2008
GO
CREATE USER alice
FOR LOGIN alice
WITH DEFAULT_SCHEMA = AdventureWorks2008


--Apagando um usuário
USE AdventureWorks2008
GO
DROP USER alice


--CONCEDENDO permissão de LEITURA para o usuário
USE AdventureWorks2008
GO
EXEC sp_addrolemember 'db_datareader', 'alice'
GO


--CONCEDENDO permissão de ESCRITA para o usuário
USE AdventureWorks2008
GO
EXEC sp_addrolemember 'db_datawriter', 'alice'
GO


--RETIRANDO permissão de ESCRITA para o usuário
USE AdventureWorks2008
GO
EXEC sp_droprolemember 'db_datawriter', 'alice'
GO


--RETIRANDO permissão de LEITURA para o usuário
USE AdventureWorks2008
GO
EXEC sp_droprolemember 'db_datareader', 'alice'
GO



--Aula 06 - Role de Aplicação
-- ====================================================================================
-- Autor        : Lineu Alves Lima Filho
-- Data Criação    : 19/11/2009
-- Descrição    : Módulo 03 -> Managing Security
-- ====================================================================================
-- Versão        : 1.0
-- ====================================================================================
-- Versão            :
-- Data Atualização    :
-- ====================================================================================


--###############################################
--        Nível 6        Application Roles
--###############################################

--Criando uma Application Role
CREATE APPLICATION ROLE financeiro
WITH PASSWORD = '987Gbv876sPYY5m23'
GO


--Apagando uma Application Role
DROP APPLICATION ROLE financeiro
GO



--Aula 07 - Permissão de Escopo de Banco de Dados
-- ====================================================================================
-- Autor        : Lineu Alves Lima Filho
-- Data Criação    : 19/11/2009
-- Descrição    : Módulo 03 -> Managing Security
-- ====================================================================================
-- Versão        : 1.0
-- ====================================================================================
-- Versão            :
-- Data Atualização    :
-- ====================================================================================


--###############################################
--        Nível 7        Database-Scope Permissions
--###############################################

--Concedendo permissão para criar SP
USE AdventureWorks2008
GO
GRANT CREATE PROCEDURE
TO alice
GO


--Criando um usuário
USE AdventureWorks2008
GO
CREATE USER lucas
FOR LOGIN lucas
WITH DEFAULT_SCHEMA = AdventureWorks2008


--Concedendo permissão para alterar qualquer usuário
USE AdventureWorks2008
GO
GRANT ALTER ANY USER
TO lucas



--Aula 08 - Permissão de Escopo de Schema

-- ====================================================================================
-- Autor        : Lineu Alves Lima Filho
-- Data Criação    : 19/11/2009
-- Descrição    : Módulo 03 -> Managing Security
-- ====================================================================================
-- Versão        : 1.0
-- ====================================================================================
-- Versão            :
-- Data Atualização    :
-- ====================================================================================


--###############################################
--        Nível 8        Schema-Scope Permissions
--###############################################

--SCHEMA

--Criando o login e user da lara
USE [master]
GO
CREATE LOGIN [lara] WITH PASSWORD='123',
DEFAULT_DATABASE=[AdventureWorks2008],
CHECK_EXPIRATION=OFF,
CHECK_POLICY=OFF
GO

USE [AdventureWorks2008]
GO
CREATE USER [lara] FOR LOGIN [lara]
GO


--Concedendo permissão de SELECT no schema Production
USE AdventureWorks2008
GO
GRANT SELECT ON SCHEMA::Production
TO [lara]
GO


-------------------------------------------------------
-----  Testando em OUTRA SESSÃO logado com lara   -----
-------------------------------------------------------
SELECT TOP 10 * FROM Person.Person

SELECT TOP 10 * FROM Production.Product

SELECT TOP 10 * FROM Production.WorkOrder

SELECT TOP 10 * FROM HumanResources.Employee
-------------------------------------------------------



--TABLE

--Concedendo permissão de SELECT na tabela Person.AddressType
USE AdventureWorks2008
GO
GRANT SELECT ON Person.AddressType
TO lara
GO

-------------------------------------------------------
-----  Testando em OUTRA SESSÃO logado com lara   -----
-------------------------------------------------------
SELECT TOP 10 * FROM Person.AddressType

SELECT TOP 10 * FROM Person.Person
-------------------------------------------------------


--COLUMN

--Concedendo permissão de SELECT para a View

CREATE VIEW vw_Sales_Store
AS
SELECT [name], CountryRegionCode
FROM Sales.SalesTerritory


USE AdventureWorks2008
GO
GRANT SELECT ON vw_Sales_Store
TO [lara]
GO


-------------------------------------------------------
-----  Testando em OUTRA SESSÃO logado com lara   -----
-------------------------------------------------------
SELECT [name], CountryRegionCode
FROM Sales.SalesTerritory


SELECT * FROM vw_Sales_Store
-------------------------------------------------------


--Aula 09 - Chave e Certificado
-- ====================================================================================
-- Autor        : Lineu Alves Lima Filho
-- Data Criação    : 19/11/2009
-- Descrição    : Módulo 03 -> Managing Security
-- ====================================================================================
-- Versão        : 1.0
-- ====================================================================================
-- Versão            :
-- Data Atualização    :
-- ====================================================================================


--###################################################################
--        Nível 9        Managing Keys and Certificates in SQL Server
--###################################################################s

CREATE DATABASE DB6231
GO

USE DB6231
GO

CREATE TABLE users
(
    cod_user    INT                IDENTITY    PRIMARY KEY,
    nome_user    CHAR(30)        NOT NULL,
    pwd_user    VARBINARY(300)
)
GO



--> Step 1 - Criando a master key com uma senha
CREATE MASTER KEY
ENCRYPTION BY PASSWORD = '2008M@sterKeyDB6231'



--> Step 2 - Criando o certificado digital
CREATE CERTIFICATE certificado_users
WITH SUBJECT = 'CertificadoUsers'



--> Step 3 - Criando a chave
CREATE SYMMETRIC KEY SK_users
WITH ALGORITHM = Triple_DES ENCRYPTION
BY CERTIFICATE certificado_users



--> Step 4 - Abrindo a chave
OPEN SYMMETRIC KEY SK_users
DECRYPTION BY CERTIFICATE certificado_users



--> Step 5 - Inserindo os dados
INSERT INTO users VALUES
('Ana Maria',
ENCRYPTBYKEY(KEY_GUID('SK_users'),'Pa$$w0rd'))

INSERT INTO users VALUES
('Lineu',
ENCRYPTBYKEY(KEY_GUID('SK_users'),'password'))

INSERT INTO users VALUES
('Julia',
ENCRYPTBYKEY(KEY_GUID('SK_users'),'Juli@007'))



--> Step 6 - Testando
SELECT    nome_user,
        pwd_user
FROM users



--> Step 7 - Testando a descriptografia
SELECT    nome_user,
        CONVERT(VARCHAR, decryptbykey(pwd_user)) AS [Senha]
FROM users



--> Step 8 - Criando uma STORED PROCEDURE para simplificar a visualização dos dados
CREATE PROC usp_users
AS
--Abrindo a chave
OPEN SYMMETRIC KEY SK_users
DECRYPTION BY CERTIFICATE certificado_users
--Buscando os dados
SELECT    nome_user,
        CONVERT(VARCHAR, decryptbykey(pwd_user)) AS [Senha]
FROM users



--Testando
EXEC usp_users




--Aula 10 - Descobrindo Senhas
-- ====================================================================================
-- Autor        : Lineu Alves Lima Filho
-- Data Criação    : 19/11/2009
-- Descrição    : Módulo 03 -> Managing Security
-- ====================================================================================
-- Versão        : 1.0
-- ====================================================================================
-- Versão            :
-- Data Atualização    :
-- ====================================================================================


--###################################################################
--        EXTRA        Descobrindo Senhas
--###################################################################s

USE [master]
GO

IF EXISTS    (SELECT * FROM sys.databases
             WHERE [name] = 'criptografia')
DROP DATABASE criptografia
GO

CREATE DATABASE criptografia
GO

USE criptografia
GO


CREATE TABLE usuario
(
    nome    VARCHAR(10),
    senha    VARBINARY(100)
)
GO


--Inserindo um registro na tabela "usuario" com a senha criptografada
INSERT INTO usuario VALUES ('Lineu', PWDENCRYPT('Pa$$w0rd')),
('Maria', PWDENCRYPT('password')), ('Julia', PWDENCRYPT('Julia007'))


--Visualizando os dados da tabela com a coluna senha criptografada
SELECT * FROM usuario


--Se retornar 1, significa que o valor é o MESMO
--Se retornar 0, significa que o valor é o DIFERENTE
SELECT nome, PWDCOMPARE('Pa$$w0rd', senha) FROM usuario


--uma consulta de usuário pode ser essa:
SELECT PWDCOMPARE('Pa$$w0rd', senha)
FROM usuario
WHERE nome = 'Lineu'


Nenhum comentário:

Postar um comentário

Related Posts Plugin for WordPress, Blogger...