terça-feira, novembro 24, 2009

Configurando Criptografia

Abaixo a definição sobre a geração de chaves(Microsoft Training Kit 70-431).

"The service master key is used to encrypt linked Server passwords, connections strings,
account credentials, and all database master Keys."

-- Criação da master key
create master key encryption by password='maykon'

-- Efetuando o backup da master key
backup service master key to file='E:\MasterKeyBackup' encryption by password='maykon'

-- Efetuando o restore da master key
restore service master key from file='E:\MasterKeyBackup' decryption by password='maykon'

-- Criando uma chave simetrica
create symmetric key key_name with algorithm = AES_256 encryption by password='maykon'

-- Criando uma chave assimetrica
create asymmetric Key key_name with algorithm = RSA_2048 encryption by password='maykon'

-- Criando um certificado
create certificate testCert with subject='Certificate for Testing'

Utilizando o certificado para encriptar um resultado, como exemplo eu tenho uma database chamada de Data, nesta database eu tenho uma tabela com o nome de Teste e com apenas uma coluna chamada de nome com o comando abaixo eu vou encriptar a coluna nome

select *, EncryptbyCert(Cert_id('testCert'),nome) nome_encriptado from Teste

domingo, novembro 22, 2009

Criação de usuário e Rules

Criação de um usuário
create user mcp for login mcp

Permitindo conexão do usuário guest que por default é negada
grant connect to guest

Removendo a permissão de conexão para o usuário guest
revoke connect to guest

Obtendo uma lista de usuários de uma database que não tem mapeado um login.
Exemplo: quando eu efetuo a exclusão de um login do MS SQL e este login tem Users mapeados em alguma database este users não são excluidos.
execute sp_change_users_login @action='report';

Criando uma role
create role role_name

Adicionando um user a uma rule, neste caso o user mcp
execute sp_addrolemember role_name, mcp

Rules disponíveis:


domingo, novembro 15, 2009

Server Roles – MS SQL

SQL Server tem disponível 8 Server roles são elas:

sysadmin: Realizar qualquer atividade no SQL Server
serveradmin: Diversas configurações
setupadmin: Adicionar e remover linked servers e execução de algumas store procedures
securityadmin: Administrar logins
processadmin: Administrar processos em uma instancia SQL Server
dbcreator: Criação e alteração de base de dados
diskadmin: Administrar disk files
bulkadmin: executar Bulk Insert(Importar arquivos)

É possível realizar a configuração da server roles através do SSMS ou utilizando procedures.
No exemplo abaixo é utilizando a procedure sp_addsrvrolemember para dar a role de sysadmin ao usuário teste:

execute sp_addsrvrolemember [maykon-server\teste], sysadmin

Para remover a role é possível utilizar a procedure sp_dropsrvrolemember

execute sp_dropsrvrolemember [maykon-server\teste], sysadmin

SQL Server Login

No MS SQL 2005 temos disponível duas formas de autenticação: Windows authentication e Mixed Mode Authentication, a Microsoft recomenda que sempre que possível deve utilizar Windows authentication, pois o gerenciamente pode ser realizado pelo AD e com isso temos disponível diversas políticas de segurança, podemos criar usuários no MS SQL através do SSMS ou usando create login, abaixo segue alguns exemplos:

-- cria um login no exemplo abaixo utiliza o login do Windows
create login [maykon-server\teste] from windows

-- excluindo o login teste
drop login [maykon-server\teste]

-- criando um login mcp e definindo
create login mcp with password='password', check_expiration=on, check_policy=on

-- alterando a senha do usuário mcp
alter login mcp with password='password2'

-- obtendo informações sobre os logins
select * from sys.sql_logins

-- Adicionado um grupo do Windows e negando a conexão de um usuário que pertence a este --grupo
create login [maykon-server\mcp] from windows
deny connect sql to [maykon-server\teste2]

Recovery Model - MS SQL 2005

A opção Recovery Model determina a forma de recuperação do banco de dados após um desastre e as opções de backups e restore disponíveis.
Três opções disponíveis: Full, Simple e bulk-Logged


Full: Todas as operações são mantidas no log transaction, este log nunca é trucado.
Simple: O mínimo de operações são mantidas no log transaction, e a cada checkpoint o log transaction é trucado.
Bulk-Logged: O mínimo de operações é mantido, não a suporte a restore no ponto de falha.

É possível verificar o qual o modelo utilizado acessando via SSMS ou através da query abaixo:
select name, recovery_model_desc from sys.databases

É possível alterar o recovery model através da query abaixo as opções disponíveis são(FULL|SIMPLE|BULK_LOGGED) :
-- alterando o recovery da base de dados data para SIMPLE
alter database data set recovery SIMPLE

Em bases de produção é recomendado o uso do recovery model FULL.

sábado, novembro 14, 2009

Configuração do Database Mail

Uma funcionalidade interessante é o database mail no MS SQL 2005, com este recurso é possível configurar o envio de e-mails no MS SQL 2005, é possível realizar a configuração via SSMS(SQL Server Management Studio) ou via procedure, abaixo vou realizar a configuração do database mail através de procedures:

-- criando database mail account
-- Passo 1
execute msdb.dbo.sysmail_add_account_sp
@account_name='Maykon Mail',
@description='Mail from Maykon',
@email_address='maykon@maykon.com',
@mailserver_name='mail.maykon.com'

-- criando database mail profile
-- Passo 2
execute msdb.dbo.sysmail_add_profile_sp
@profile_name='Maykon mail profile',
@description='Profile database mail'

-- adicionando ao database mail a conta criada no passo 1
-- Passo 3
execute msdb.dbo.sysmail_add_profileaccount_sp
@profile_name='Maykon mail profile',
@account_name='Maykon Mail',
@sequence_number=1

-- concedendo a permissão para o profile e definindo com profile --
--default

execute msdb.dbo.sysmail_add_principalprofile_sp
@profile_name='Maykon mail profile',
@principal_name='public',
@is_default=1;
Um detalhe interessante é que para utilizar o database mail para verificar o sucesso ou não dos jobs é necessário criar um operator, para criar um operator é necessário executar a procedure abaixo, ou configurar via SSMS
execute msdb.dbo.sp_add_operator
@name=N'Maykon_jobs',
@enabled=1,
@pager_days=0,
@email_address=N'maykon@maykon.com'
-

É possível visualizar posteriormente a configuração do database mail através do SSMS como pode ser observado no print abaixo:

Referência: Microsoft SQL Server Implementation and Maintenance(Training Kit)

)-:

Às vezes acontecem coisas na vida que mudam totalmente a forma de você pensar, agir, odiar, amar ou não amar, coisas que tu não espera mas que a vida simplesmente traz para você, talvez quando o homem achar uma maneira de voltar ao passado você volte para consertar os erros que você cometeu, mas a vida é assim mesmo, nascemos vivemos ou tentamos viver, algumas pessoas talvez nem saibam por que vivem, outras querem morrer, mas a vida continua no planeta terra, algumas pessoas são cheias de sonhos que talvez nunca realizem, as pessoas buscam a felicidade mas onde encontrar a felicidade? Ela realmente existe?

quarta-feira, novembro 04, 2009

Exame 70-431 TS: Microsoft SQL Server 2005 - Implementation and Maintenance

Finalmente decidi qual será meu próximo exame, estou trabalhando com o MS SQL Server 2005 desde fevereiro e estou gostando, porém meu conhecimento em administração desde SGBD é muito pequena, existem muitos recursos que eu não conheço, para me preparar para essa prova eu comprei o Training kit oficial deste exame, provavelmente eu irei fazer este exame somente ano que vem, pois quero estar bem preparado e tenho muito o que aprender ainda.
Pretendo fazer muitos posts sobre o conteúdo que eu estiver estudando pois é uma maneira de memorizar e praticar os conteúdos que eu aprender.


Informações sobre o exame: http://www.microsoft.com/learning/en/us/exam.aspx?ID=70-431&locale=en-us#tab2