MS SQL Server- по простому.

Фильтр по тегу: Безопасность ms sql server


Скриптование всех пользователей, ролей БД и их прав

Часто необходимо заскриптовать пользователей базы данных, а затем их снова накатить либо на новой базе данных , либо на старой, к примеру такое часто необходимо при восстанвление тестовой среды.
Ниже приводится скрипт скриптует пользователей и их права:



--1 создание таблицы для логинов
print 'Создание таблиц для хранения учетных записей и их прав'
IF NOT EXISTS (SELECT * FROM tempdb.sys.objects
              WHERE object_id = OBJECT_ID(N'tempdb.[dbo].[logins]') AND type in (N'U'))
begin
      create table tempdb.dbo.logins
      ( a varchar(2048),
       l int)
end
else
begin 
 truncate table tempdb.dbo.Logins
end

IF NOT EXISTS (SELECT * FROM tempdb.sys.objects
              WHERE object_id = OBJECT_ID(N'tempdb.[dbo].[loginsscripts]') AND type in (N'U'))
begin
      create table tempdb.dbo.loginsscripts
      ( a varchar(2048))
end
else
begin 
 truncate table tempdb.dbo.[loginsscripts]
end
print 'Конец Создание таблиц для хранения учетных записей и их прав'

--2 создание процедур скриптования 
print 'Создание процедур для скриптования логинов '
IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[USERGRANT]') AND type in (N'P', N'PC'))
BEGIN
EXEC dbo.sp_executesql @statement = N'CREATE P...
читать дальше...
добавлено: 22 ноя 15 просмотры: 2811, комментарии: 0



Скрипт список разрешений пользователей на сервер MS SQL Server


 При миграции с одного MS SQL server на другой сервер, переустановки сервера  необходимо кроме как скопировать  учетные записи, нужно скопировать и их разрешения на сервер MS SQL Server.

Ниже приводится скрипт  получения списка прав на MS SQL Server(скрипт применим для версий MS SQL Server 2005 и старше):

select 
 'sqlcommand'=
   case
     when s.class_desc='SERVER' then  
         case
             when  s.state_desc<>'GRANT_WITH_GRANT_OPTION'then
              s.state_desc+' '+s.permission_name +' TO ['+p.name+']' collate Cyrillic_General_CI_AS
             else 
              'GRANT '+s.permission_name +' TO ['+p.name+'] ' +'WITH GRANT OPTION ' collate Cyrillic_General_CI_AS
         end
    
     when s.class_desc='ENDPOINT' then
        case
             when  s.state_desc<>'GRANT_WITH_GRANT_OPTION'then
              s.state_desc+' '+s.permission...
читать дальше...
добавлено: 16 ноя 15 просмотры: 2172, комментарии: 0



Скрипт переноса пользователей ролей сервера

При переходе с одного сервера на другой, необходимо так же перенести пользователей и вхождения в роли сервера.

Ниже приводится скрипт, которые предоставляет это сделать:

IF NOT EXISTS (SELECT * FROM tempdb.sys.objects WHERE object_id = OBJECT_ID(N'tempdb.dbo.#t')

AND type in (N'U'))

BEGIN
  create table #t

  ( serverrole nvarchar(40),

  membername nvarchar(200),

  membersid varbinary(85)

  )
end

else
  truncate table #t

declare @serverrole nvarchar(40)
declare @Membername nvarchar(200)
declare @sql nvarchar(250)

insert into #t
exec sp_helpsrvrolemember -- 'sysadmin'
--Если необходим список конкретной роли, то нужно указать её, иначе получится скрипт для всех ролей
 
declare cur cursor for
select serverrole,Membername from #t
where Membername not in ('sa','NT AUTHORITY\SYSTEM',

                                           'NT SERVICE\MSSQLSERVER','NT SERVICE\SQLSERVERAGENT',

                                           'NT AUTHORITY...
читать дальше...
добавлено: 21 окт 15 просмотры: 1704, комментарии: 0



Основы MS SQL Server шифрования на примере симметричного шифрования

Рассмотрим один из способов шифрования данных MS SQL Server 2008R2, а именно использование симметричного ключа, далее с помощью данного ключа зашифруем столбец в таблице.

Для начало немного теории:

Симметричный ключ –это ключ шифрования который используется как для шифрования данных, так и для их расшифровки. При его создании он должен быть зашифрован с помощью одним из средств: сертификат, пароль, симметричным\ассиметричным ключом. В примере будем шифровать с помощью сертификата.

Для того чтобы создать сертификаты и симметричный ключ в базе данных, нужно создать главный ключ базы данных (master key). Главный ключ базы данных  шифруется с помощью главного ключа службы, и хранится как в самой базе данных так и её копия в базе данных master.

Главный ключ службы является вершиной иерархии шифрования ms sql server. Он создается автоматически, когда он понадобится при шифровании.
Для шифрования отдельный строк данных  необходимы функции шифрования – мы будем использовать EncryptByKey \ DescryptByKey.

В итоге имеем следующую цепочку:

Главный ключ службы -> Главный ключ базы данных -> Ключи и сертификаты в базе данных.
Соответственно, не имея одного из компонентов, мы не сможем расшифровать наши данные. Поэтому не забываем делать резервные копии ключей.
Перейдем от теории к практики:
Задача: зашифровать поле  в таблице.

1) Для начало создадим ключ базы данных:

CREATE MASTER KEY ENCRYPTION BY
    PASSWORD= 'superpassword#12'

2)Затем создадим сертифик...
читать дальше...
добавлено: 14 окт 15 просмотры: 3056, комментарии: 1



Основы прозрачного шифрования MS SQL Server


Продолжая тему защиты данных в базе данных в MS SQL Server, рассмотрим прозрачное шифрование (Transparent Data Encryption - TDE ) в MS SQL Server.  Демонстрация шифрования будет проводится на MS SQL Server 2012 SP1 Enterprise Edition  для базы данных клиентов [DbClients], но данный сценарий будет рабочий и для MS SQL Server 2005/2008. Прозрачное шифрование доступно только в редакциях Enterprise или Datacenter.
Итак, для начало немного теории:

Как всегда все хорошо описано в BOL -http://msdn.microsoft.com/ru-ru/library/bb934049.aspx .
Функция прозрачного шифрования данных (TDE) выполняет в реальном времени шифрование и дешифрование файлов данных и журналов в операциях ввода-вывода. При шифровании используется ключ шифрования базы данных (DEK), который хранится в загрузочной записи базы данных для доступности при восстановлении.Ключ шифрования базы данных является симметричным ключом, защищенным сертификатом, который хранится в базе данных master на сервере, или асимметричным ключом, защищенным модулем расширенного управления ключами.Функция прозрачного шифрования данных защищает «неактивные» данные, то есть файлы данных и журналов

Основное прозрачного шифрования, это то , что:
Шифрование файла базы данных проводится на уровне страниц. Страницы в зашифрованной базе данных шифруются до записи на диск и дешифруются при чтении в память. Прозрачное шифрование данных не увеличивает размер зашифрованной базы данных.

При этом не стоит забывать, что прозрачное шифрование не ...
читать дальше...
добавлено: 21 сен 15 просмотры: 2249, комментарии: 0