Стандартные роли сервера (fixed Server roles) и их права:
Sysadmin – Может выполнять любые действия в SQL Server.
Serveradmin – Выполняет конфигурирование и выключение сервера.
Setupadmin – Управляет связанными серверами и процедурами, автоматически запускающимися при старте SQL Server.
Securityadmin – Управляет учетными записями и правами на создание базы данных, также может читать журнал ошибок.
Processadmin – Управляет процессами, запущенными в SQL Server.
Dbcreator – Может создавать и модифицировать базы данных.
Diskadmin – Управляет файлами SQL Server.
Bulkadmin – Члены роли Bulkadmin могут вставлять данные с использованием средств массивного копирования, не имея непосредственного доступа к таблицам.
Роли базы данных (database role) позволяют объединять пользователей в одну административную единицу и работать с ней как с обычным пользователем. Можно назначить права доступа к объектам базы данных для конкретной роли, при этом вы автоматически наделяете всех членов этой роли одинаковыми правами. Вместо того чтобы предоставлять доступ каждому конкретному пользователю, а впоследствии постоянно следить за изменениями, можно просто включить пользователя в нужную роль. Если сотрудник переходит в другой отдел, нужно просто удалить его из одной роли и добавить в другую. Создайте необходимое количество ролей, которые охватывали бы все многообразие действий с базой данных. Позже, при изменении функций членов одной из ролей, достаточно изменить права доступа для этой роли, а не устанавливать новые права для каждого пользователя.
В роль базы данных можно включать:
· Пользователей SQL Server;
· Роли SQL Server;
· Пользователей Windows NT;
· Группы Windows NT, которым предварительно предоставлен доступ к нужной базе данных;
SQL Server может использовать два режима аутентификации пользователей:
· режим аутентификации средствами Windows NT/2000 (Windows NT Authentication);
· смешанный режим аутентификации (Windows NT Authentication and SQL Server Authentication).
Смешанный режим позволяет пользователям регистрироваться как средствами Windows NT, так и средствами SQL Server. Кроме того, этот режим предлагает некоторые удобства по сравнению с первым. В частности, при аутентификации только средствами домена Windows NT, если пользователь не имеет учетной записи в домене Windows NT, то он не сможет получить доступа к серверу баз данных. Смешанный режим аутентификации позволяет избежать этой проблемы.
При выборе режима аутентификации следует исходить как из требований обеспечения наибольшей безопасности, так и из соображений простоты администрирования. Если ваша организация небольшая и должности администратора сети и администратора баз данных совмещает один человек, то удобнее использовать аутентификацию Windows NT. Если же в организации сотни пользователей и функции системного администратора и администратора баз данных выполняют различные люди, то может оказаться, что аутентификация средствами SQL Server удобнее. В противном случае человеку, занимающемуся администрированием сервера баз данных, придется постоянно обращаться к системному администратору для создания нового пользователя, смены пароля или для перевода пользователя из одной группы в другую. К тому же системный администратор будет иметь возможность назначать права доступа по своему усмотрению, а это совсем ни к чему.
С другой стороны, каждый пользователь организации, скорее всего, имеет в домене учетную запись, администрированием которой занимается системный администратор. Благодаря аутентификации Windows NT администратор баз данных может использовать уже готовые учетные записи, а не отвлекаться на создание новых.
Аутентификация Windows предоставляет решение Single Sign-On (SSO) для пользователей Windows, снижая количество паролей, которые требуется запомнить, что снижает вероятность записи их куда-либо. Вдобавок, аутентификация Windows может воспользоваться преимуществами групп Windows для безопасности. Интеграция с Windows означает, что SQL Server 2005 может воспользоваться политиками безопасности, применяемым к доменным учётным записям Windows, такими как сложность пароля и срок действия пароля. Так как та же парольная политика используется в домене Windows, имеются согласованные парольные политики в вычислительной среде. Аутентификация Windows также пользуется преимуществами защищенных протоколов аутентификации, которые используются пользуется в домене, что снижает вероятность записи их куда-либо.ли у организации нет процес Windows, таких как Kerberos и NT LAN Manager (NTLM), которые шифруют пароль при передаче по сети.
1.7 Преимущества режима аутентификации Windows NT
1. Пользователю достаточно помнить только один пароль - для входа в Windows.
2. Повышается уровень безопасности SQL Server. Это происходит, по крайней мере, из-за того что, пароль не будет передаваться открытым текстом по сети, как это происходит по умолчанию при использовании команд CREATE LOGIN и ALTER LOGIN. Тем более хэши Windows намного более защищенные, чем хэши в SQL Server, которые можно вскрыть достаточно быстро.
3. Проверка при входе пользователя производиться значительно быстрее.
4. На пользователях автоматически отражаются все правила политики безопасности, установленные в домене.
5. Эти преимущества справедливы для любых логинов Windows: как для обычных учетных записей, так и для групп, но идеальный вариант использовать все-таки группы, причины просты:
6. Снижается размер системных таблиц master в результате чего аутентификация производиться быстрее. На одном сервере Sql вполне может быть несколько тысяч логинов для пользователей Windows или, что гораздо удобнее всего пара десятков логинов для групп.
7. Резко упрощается предоставление разрешений для новых учетных записей. Например, если на предприятии появился новый пользователь, создается новая учетная запись в Windows, затем, чтобы не добавлять на этого пользователя разрешения, которые нужны, мы просто на уровне Windows добавляем его в нужную группу, он унаследует доступ к SQL серверу, а также все разрешения.
Шифрование это процесс сокрытия данных от людей, которые не обладают соответствующими ключами для чтения данных. Существуют два фактора, о которых следует помнить, когда работают с данными из базы: передача данных по сети и хранение данных в базе.
SQL Server во всех редакциях может шифровать сетевой трафик при помощи множества средств, типа IP Security (IP SEC) и Secure Sockets Layer (SSL).В SQL Server поддерживаются два широко используемых сетевых стандарта в качестве альтернатив шифрованию данных, передаваемых по сети: SSL and IP SEC. Эти протоколы поддерживаются Windows. SSL поддерживается через интеграцию SQL Server с Internet Information Services (IIS) или через сервер сертификатов, входящий в состав SQL Server.
SQL Server поставляется со своей собственной службой сертификатов для настройки сетевого шифрования по SSL. Сертификаты создаются внутри SQL Server и соответствуют стандарту X.509v3. Сертификаты используются SQL Server для создания SSL соединений, а также они используются службой SQL Service Broker.
SQL Server предпринимает усилия для того, чтобы быть более защищённым по умолчанию, отвечая только на шифрованные запросы клиентов и отсылая шифрованный поток данных обратно клиентам в продуктах вроде Analysis Server.
IP SEC также поддерживается Windows как шифрованный канал для сетевых соединений.
SQL Server обладает возможностью непосредственного шифрования данных в базе данных, используя встроенный сервер сертификатов. SQL Server содержит шесть встроенных функций, используемых для шифрования и расшифровки данных:
EncryptByCert
DecryptByCert
EncryptByKey
DecryptByKey
EncryptByAssym
DecryptByAssym
Эти функции позволяют использовать существующий сертификат для шифрования данных (наиболее безопасный метод), простой ключ (пароль) или ассиметричный ключ (пару открытый/закрытый ключ). SQL Server может создавать и управлять своими сертификатами для обеспечения очень мощного шифрования данных, хранимых в базе данных. Transact - SQL в SQL Server был улучшен для поддержки управления сертификатами:
Создание сертификата:
CREATE CERTIFICATE MyCert
WITH SUBJECT = ‘My Subject’,
ENCRYPTION PASSWORD = ‘jfdsij380fukanfjcxvDJEOD#$fksdwr’,
EXPIRY_DATE = ‘12/31/2009’;
После того, как сертификат создан, можно использовать функцию EncryptByCert для шифрования значения и сохранения результата в переменной:
DECLARE @VAL nvarchar(8000)
SELECT @VAL = EncryptByCert(Cert_ID(‘MyCert’), N’Some Message’)
Далее можно прочесть это значение из поля или переменной при помощи функции DecryptByCert:
SELECT CAST(DecryptByCert(Cert_ID(‘MyCert’), @VAL, N’ jfdsij380fukanfjcxvDJEOD#$fksdwr’) AS nvarchar)
1.11 Реализация доступа к серверу и базе данных
Итак, гораздо более удобным и эффективным является подход, когда доступ к SQL Server 2008 предоставляется целым группам пользователей. Как раз такой подход возможен при аутентификации средствами Windows NT/2000, когда на уровне домена создается несколько групп, каждая из которых предназначена для решения специфических задач. На уровне SQL Server 2008 такой группе разрешается доступ к серверу, предоставляются необходимые права доступа к базам данных и их объектам. Достаточно включить учетную запись Windows NT в одну из групп, и пользователь получит все права доступа, предоставленные этой группе. Более того, одна и та же учетная запись может быть включена во множество групп Windows NT, что даст этой учетной записи возможность пользоваться правами доступа, предоставленными всем этим группам. Администратор SQL Server 2008 должен сам решить, как удобнее предоставлять доступ к серверу: персонально каждой учетной записи или группе в целом.
Итак, задача стоит реализовать разграниченный доступ к базе данных SQL Server из приложения.
Приложение запускается на некотором компьютере пользователя сети университета, если этот пользователь входит в домен организованный администраторами сети университета, то он успешно аутентифицируется в Windows. Чтобы он мог получить доступ к SQL серверу необходимо при установке SQL Server, и с помощью SQL Server Management studio настроить режим аутентификации – режим аутентификации средствами Windows NT\2000.