Блог


Последние записи


Теги

Информация

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


Ошибка при отображение OLAP куба


При начале работы в Microsoft  Visual Studio 2008 с OLAP кубами может  возникнуть следующая ошибка при попытке отобразить куб:

Class not registered (Exception from HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG)) (Microsoft Visual Studio)

 

Решение: необходимо скачать компонент Office 2003 Add-in: Office Web Components:
http://www.microsoft.com/en-us/download/confirmation.aspx?id=22276
После установки ошибка исчезает.
читать дальше...
добавлено: 20 ноя 15 просмотры: 1095, комментарии: 0



Настройка репликации MS SQL Server через сеть Интернет


Иногда необходимо доставить данные с одного сервера MS SQL Server  к другому серверу через сеть Интернет использую репликацию, такой случай у меня  был, и ниже я описал как это было реализорвано.
Настройка репликации  MS SQL Server через Интернет мало чем отличается от настройки репликации в локальной сети, за исключением настройки сетевого оборудования.
 


Примерная схема, того, что у нас должно получиться примерно такова:


Объект 1 Сервер 1 и Объект 4 Сервер 2 - это сервера с MS SQL Server в разных сетях.
На Сервере 4 находится основная база, на которую настроена репликация транзакций.
Сервере 1 будет выполнять роль PULL подписчика.

Я еще дополнительно использую ftp для получения резервной копии и её восстановления на Сервер 1 для настройки репликации. Сервер ftp  так же запущен на сервере 2. В MS SQL Server есть возможность использовать ftp для доставки моментальных снимков при репликации, но у меня была проблема с настройкой сетевого оборудования с настройкой NAT-PT, FTPALG, иначе не будет происходить доступ подписчика к ftp серверу.  Я решил по-простому – использовать резервные копии.
Объект 2,3 –это коммутаторы имеющие выход в Интернет с  внешним IP, на которых будут настроены сетевые правила .

Сначала настраивается сетевое оборудование, на коммутаторе 2 необходимо открыть порты TCP 20,21 для ftp и 1433 для самого MS SQL Server (при использование именованного инстанса дополнительно открыть UDP 1434 ) для пак...
читать дальше...
добавлено: 19 ноя 15 просмотры: 1061, комментарии: 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 просмотры: 1604, комментарии: 0



32-разрядные ODBC драйвера на 64-разрядной операционной системе


Довольно часто бывает, что при настройке доступа из MS SQL Server к другим источникам данных мы имеем только 32-разрядные  ODBC драйвера в то время, когда операционная система 64-разрядная.

Решить данную проблему можно следующими способами:

1)Установить на 64 –разрядную ОС 32-разрядную версию MS SQL Server, иногда подходит даже  редакция MS SQL Server Express . После этого возможно настроить связанный сервер с помощью 32 - разрядных  драйверов.

2)Создать ODBC источник в операционной системе, затем создать SSIS пакет, а в свойствах пакета указать работу в 32-разрядном режиме. В этом случае наши драйвера будут работать.  

Для указания данного параметра необходимо в среде MS SQL Server Business Intelligence Development Studio в свойствах проекта «Project -> Name of Project Properties» выбрать пункт «Debugging»  параметр «Run64BitRuntime » выставить в значение  «False».

Важно:И еще после установки 32-разрядных драйверов, настройка источников данных осуществляется через приложение odbcad32.exe расположенное в каталоге «C:\Windows\SysWOW64».

Удачных коннектов!
читать дальше...
добавлено: 09 ноя 15 просмотры: 1257, комментарии: 1



Настройка IBM Lotus ODBC драйвера для MS SQL Server


    Недавно пришлось настраивать, а точнее восстанавливать, ODBC подключение к  базам Lotus-а.

А началось с того, что позвонил аналитик и сообщил, что перестала работать загрузка данных из баз данных Lotus-а. Выгрузка эта была настроена давно другим пользователем, и он уже как пол года уволился, а выгрузка перестала работать 3 дня назад. Начал разбираться, т.к это был первый опыт работы с данным источником, то пришлось разбираться с нуля, и получилось довольно не просто.
   06.11.2013 добавлена информация по настройке драйверов для Windows 2012 Server.
Ниже описаны шаги по настройке данного источника данных для MS SQL Server.

Итак, порядок установки и настройки таков:

1)Скачиваем и устанавливаем Lotus Notes SQL ODBC драйвера с сайта IBM. На момент написания этой статьи была доступна следующая версия драйверов 8.51.2009.1021 от 21.10.2009. На что здесь стоит обратить, то что драйвера только 32-разрядные, а  большинство серверов уже 63 разрядные. Соответственно настройка источника необходимо производить как описано в данной статье.

После того как скачали, устанавливаем драйвера, желательно в каталог по умолчанию C:\NotesSQL.

2)Устанавливаем клиент IBM Lotus Notes на сервер. После установки клиента на сервер, его необходимо настроить под пользователем, через которого будет осуществляться доступ к базам Lotus-а.

3) Запустить приложение Nsql_ALM.exe , которое находится в каталоге установки ODBC драйверов IBM Lotus. В данном приложении необходимо указать ...
читать дальше...
добавлено: 02 ноя 15 просмотры: 1689, комментарии: 0



Резервное копирование и восстановление сервера отчетов MS SQL Server Reporting Services


С сервера MS SQL  Server Reporting Services  с отчетами нужно обязательно создавать резервные копии, как и с других компонентов  MS SQL Server.

Иначе,  при внештатной ситуации данный сервер может быть недоступен, что приведет к недоступности отчетной информации.

Ниже описан минимум, что нужно резервировать:

1) Создать резервные копии баз данных сервера отчетов, по умолчанию это базы  ReportServer,

ReportServerTempDB .

База  ReportServerTempDBсодержит временную информацию необходимая только самому серверу отчетов на определенный момент, это что-то вроде TempDb для сервера отчетов. Поэтому её нет необходимости все время создавать резервные копии, желательно иметь хотя бы 1 резервную копию базы. Она необходима для того, чтобы не создавать заной данную базу при восстановлении нового сервера отчетов. Так же эта резервная копия пригодится при повреждении целостности базы данных при проверки CheckDb().

База данных ReportServer содержит всю информацию по пользовательским объектам сервера отчетов. Частота резервного копирования данной информации выставляется исходя из частоты создания\изменения объектов на сервере отчетов. Обычно достаточно раз в день

2) Необходимо создать резервную копию ключа шифрования пользовательской информации.

Для этого нужно отрыть MS SQL Server Reporting Server Configuration Manager, выбрать пункт «Encryption Key»   и нажать кнопку «Backup»



При создании необходимо указать путь хранения файлов, ...
читать дальше...
добавлено: 29 окт 15 просмотры: 1042, комментарии: 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 просмотры: 1291, комментарии: 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 просмотры: 2291, комментарии: 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 просмотры: 1772, комментарии: 0



MS SQL Server и MS SharePoint 2013. Сообщение «Using 'dbghelp.dll' version '4.0.5'»


После развертывания баз данных MS SharePoint 2013 на сервере MS SQL Server 2008R2 в логах СУБД появилось несметное количество однородных сообщений малоинформативного содержания:

Message
Using 'dbghelp.dll' version '4.0.5'

Все бы ничего, но их количество – 10-12 сообщений в минуту:



В итоге лог стал мало читаем, вырос в размерах, а так же появилась вероятность пропуска важных сообщений.
Как оказалось, данное сообщение довольно распространенное и известна, но решения по ней официального нет.

http://connect.microsoft.com/SQLServer/feedback/details/781950/turn-off-using-dbghelp-dll-version-4-0-5-messages-trace-flag
http://blogs.msdn.com/b/chaun/archive/2013/08/01/sp2013-sql2012-database-performance-metric-provider-timer-job-using-dbghelp-dll-version-4-0-5.aspx

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

select event_session_id,name from sys.server_event_sessions

Результат:

name
-------------------------------------------------------------------------------------------------
system_health
SharePoint_Diagnostics_e4299af2cd984988a6bc5bdcc784b139_0
SharePoint_Diagnostics_e4299af2cd984988a6bc5bdcc784b139_1

Далее их просто удаляем:

DROP EVENT SESSIONSharePoint_Di...
читать дальше...
добавлено: 15 сен 15 просмотры: 959, комментарии: 0