Download presentation
Presentation is loading. Please wait.
Published byAusten Bryan Modified over 8 years ago
1
SQL Server
3
logins/users roles certificate assymetric key
4
Standard SQL Server login Windows login Windows group Certificate Asymmetric Key
5
CREATE LOGIN loginName { WITH | FROM } ::= PASSWORD = { 'password' | hashed_password HASHED } [ MUST_CHANGE ] [, [,... ] ]
6
::= SID = sid | DEFAULT_DATABASE = database | DEFAULT_LANGUAGE = language | CHECK_EXPIRATION = { ON | OFF} | CHECK_POLICY = { ON | OFF} | CREDENTIAL = credential_name ::= WINDOWS [ WITH [,... ] ] | CERTIFICATE certname | ASYMMETRIC KEY asym_key_name ::= DEFAULT_DATABASE = database | DEFAULT_LANGUAGE = language
7
bulkadmin dbcreator diskadmin processadmin securityadmin serveradmin setupadmin sysadmin
8
CREATE LOGIN TestLogin WITH PASSWORD = ' ', CHECK_POLICY = ON, CHECK_EXPIRATION = ON GO
9
CREATE USER user_name [ { { FOR | FROM } { LOGIN login_name | CERTIFICATE cert_name | ASYMMETRIC KEY asym_key_name} | WITHOUT LOGIN ] [ WITH DEFAULT_SCHEMA = schema_name ]
10
db_accessadmin db_backupoperator db_datareader / db_datawriter db_ddladmin db_denydatareader / db_denydatawriter db_owner db_securityadmin public
11
{ EXEC | EXECUTE ] AS ::= { LOGIN | USER } = 'name' [ WITH NO REVERT ] | CALLER
12
SELECT INSERT UPDATE DELETE EXECUTE REFERENCES CONTROL ALTER VIEW DEFINITION TAKE OWNERSHIP
13
GRANT EXECUTE ON Customers.asp_submitorder TO SubmitOrdersRole
14
SELECT USER_NAME() GO EXECUTE AS USER = 'TestUser' GO SELECT USER_NAME() GO EXEC Customers.asp_submitorder 1, '1-2RB1-4RO', 5 GO SELECT OrderID, CustomerID, OrderDate, SubTotal, TaxAmount, ShippingAmount, GrandTotal, FinalShipDate FROM Orders.OrderHeader SELECT OrderDetailID, OrderID, SKU, Quantity, UnitPrice, ShipDate FROM Orders.OrderDetail GO REVERT
15
GRANT SELECT ON DATABASE::SQL2008SBS TO TestLogin GO DENY VIEW DEFINITION ON DATABASE::SQL2008SBS TO TestLogin GO
16
EXECUTE AS USER = 'TestLogin‘ GO SELECT * FROM sys.objects GO SELECT OrderID, CustomerID, OrderDate, SubTotal, TaxAmount, ShippingAmount, GrandTotal, FinalShipDate FROM Orders.OrderHeader GO REVERT
17
SAFE EXTERNAL_ACCESS UNSAFE
18
1-Sided – Hashs: MD2,MD4,MD5, SHA,SHA1 2-Sided: Symetric Keys (Best Performance), Asymetric Keys(Strong),Certificates
19
Service Master Key Database Master Key CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'password'
20
OPEN MASTER KEY DECRYPTION BY PASSWORD = 'password' BACKUP MASTER KEY TO FILE = 'path_to_file' ENCRYPTION BY PASSWORD = 'password‘ RESTORE MASTER KEY FROM FILE = 'path_to_file' DECRYPTION BY PASSWORD = ‘pwd' ENCRYPTION BY PASSWORD = ‘pwd' CLOSE MASTER KEY
21
DECLARE @HashValue varchar(100) SELECT @HashValue = 'SQL Server‘ SELECT HashBytes('MD5', @HashValue) SELECT @HashValue = 'SQL Server‘ SELECT HashBytes('SHA1', @HashValue)
22
Hash Algorithms are Case-Sensitive MD2, MD4,SHA is also available Remember to Salt Hashs
23
CREATE SYMMETRIC KEY MySymmetricKey WITH ALGORITHM = RC4 ENCRYPTION BY PASSWORD = ‘pwd’ GO SELECT * FROM sys.symmetric_keys GO CREATE TABLE SymmetricKeyDemo (ID int IDENTITY(1,1), PlainText varchar(30) NOT NULL, EncryptedText varbinary(80) NOT NULL) GO OPEN SYMMETRIC KEY MySymmetricKey DECRYPTION BY PASSWORD = ‘pwd’ GO
24
INSERT INTO SymmetricKeyDemo (PlainText, EncryptedText) VALUES('SQL Server', EncryptByKey( Key_GUID('MySymmetricKey'),'SQL Server')) GO SELECT ID, PlainText, EncryptedText, cast(DecryptByKey(EncryptedText) AS varchar(30)) FROM SymmetricKeyDemo GO CLOSE SYMMETRIC KEY MySymmetricKey
25
CREATE CERTIFICATE MyCert AUTHORIZATION dbo WITH SUBJECT = 'Test certificate‘ GO
26
CREATE CERTIFICATE certificate_name [ AUTHORIZATION user_name ] { FROM | ::= ASSEMBLY assembly_name | { [ EXECUTABLE ] FILE = 'path_to_file' [ WITH PRIVATE KEY ( ) ] }
27
::= [ ENCRYPTION BY PASSWORD = 'password'] WITH SUBJECT = 'certificate_subject_name' [, [,...n ] ] ::= FILE = 'path_to_private_key' [, DECRYPTION BY PASSWORD = 'password' ] [, ENCRYPTION BY PASSWORD = 'password' ] ::= START_DATE = 'mm/dd/yyyy' | EXPIRY_DATE = 'mm/dd/yyyy'
28
CREATE TABLE CertificateDemo (ID int IDENTITY(1,1), PlainText varchar(30) NOT NULL, EncryptedText varbinary(500) NOT NULL) GO CREATE CERTIFICATE MyCert AUTHORIZATION dbo WITH SUBJECT = 'Test certificate'
29
GO SELECT * FROM sys.certificates GO INSERT INTO CertificateDemo (PlainText, EncryptedText) VALUES('SQL Server',EncryptByCert(Cert_ID('MyCert'), 'SQL Server')) GO SELECT ID, PlainText, EncryptedText, CAST(DecryptByCert(Cert_Id('MyCert'), EncryptedText) AS varchar(max)) FROM CertificateDemo
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.