- •СОДЕРЖАНИЕ
- •1.1. Эволюция технологии программирования
- •1.2. Сущность технологии объектно-ориентированного программирования
- •1.3. Использование объектных моделей при организации удаленных соединений
- •2.1. Классификация объектов БД
- •2.2. Свойства и особенности элементов языка
- •2.3. Создание и удаление баз данных
- •2.4. Создание и модификация таблиц баз данных
- •ЛЕКЦИЯ 3.
- •РАБОТА С ДАННЫМИ В ЯЗЫКЕ TRANSACT-SQL
- •3.2. Создание
- •3.3. Команды манипуляции данными
- •4.1. Стандарты синтаксиса Transact-SQL
- •4.3. Курсоры
- •5.1. Разграничение прав доступа
- •5.3. Пользователи
- •5.6. Командные манипуляции с БД
- •5.7. Связанные и удаленные серверы
- •СПИСОК РЕКОМЕНДУЕМОЙ ЛИТЕРАТУРЫ
- •ЛАБОРАТОРНАЯ РАБОТА № 3. ГЕНЕРИРОВАНИЕ ОТЧЕТОВ
- •ЛАБОРАТОРНАЯ РАБОТА № 4. УДАЛЕННОЕ СОЕДИНЕНИЕ С БД INTERBASE НА ОСНОВЕ BDE
- •ЛАБОРАТОРНАЯ РАБОТА № 5. РАБОТА С КОМПОНЕНТАМИ MICROSOFT SQL SERVER
- •САМОСТОЯТЕЛЬНАЯ РАБОТА:
- •ЛАБОРАТОРНАЯ РАБОТА № 6. КОМАНДЫ СОЗДАНИЯ, МОДИФИКАЦИИ И УДАЛЕНИЯ ТАБЛИЦ
GRANT SELECT, INSERT ON T1 TO MY.ROLE;
GRANT MY.ROLE TO USER1;
Команда SET ROLE. Эта команда позволяет назначить пользователю, под ключенному к БД, определенную роль. При этом, разумеется, происходит из менение его привилегий. Директива имеет следующий синтаксис:
SET ROLE ИМЯ.РОЛИ;
Например:
SET ROLE MY_ROLE;
В некоторых СУБД установленные таким образом права пользовате лей автоматически становятся ролями по умолчанию, которые назначаются пользователю при входе в систему.
Команда DROP ROLE. Команда позволяет удалить указанную роль со все ми вытекающими из этого последствиями, имеет следующий синтаксис:
DROP ROLE ИМЯ.РОЛИ;
Например:
DROP ROLE MY_ROLE;
5.3. Пользователи
Пользователь, подключающийся к Microsoft SQL Server, должен иденти фицировать себя, используя существующую учетную запись. Такой учетной записью может быть учетная запись Windows, группа записей Windows NT или учетная запись Microsoft SQL Server (детальная информация обо всех поль зователях БД хранится в системной таблице sysusers). Каждая учетная запись ассоциируется с пользователем и конкретной БД. При этом пользователи вы ступают в качестве функциональных объектов БД.
В командной строке SQL связывание учетной записи (login) с именем пользователя выглядит следующим образом:
sp_adduser ’login’ [,’user_in_DB’( ’role’]
Для авторизации Windows NT следует использовать процедуру sp_ grantdbaccess.
1 Security |
^ |
ill db |
Logins |
^ |
O R Users |
В случае создания объекта БД обращение к нему осуществляется по правилу:
1.Объект ищется в схеме пользователя, в которой выполняется команда;
2.Если объект не найден, то происходит его поиск в схеме “dbo”. Владелец любого объекта имеет к нему полный (неявно!) доступ. Если
требуется разрешить другим пользователям выполнять над объектом ка кие-либо действия, то следует наделить их привилегиями (явно!). В слу
2 - разрешено (средний приоритет); - - не указано (низкий приоритет).
Реальный уровень доступа к объектам БД обычно является логической комбинацией матрицы доступа пользователя и матрицы доступа роли. Та ким образом, доступ к объекту может быть получен индивидуально или через членство в группах.
Влюбом случае, доступ к объекту (явный) разрешается, только если
влогическом выражении есть «хотя бы одно разрешение» и нет «ни одного запрета» по отношению к выбранному объекту. Владелец объекта (неявный доступ) может выполнять с ним любые операции. В результате можно сформи ровать 4 категории привилегий пользователей:
1.Права на подключение к серверу (первый уровень);
2.Права подключения к БД (второй уровень);
3.Привилегии доступа к объектам БД (третий уровень);
4.Права делиться полномочиями над объектами БД (высший уровень).
Вмомент создания любого пользователя БД происходит автоматическое занесение его учетной записи в роль «public».
5.6. Командные манипуляции с БД
По очевидным причинам создание БД с помощью директивы CREATE DATABASE очень проблематично, так как требует перечисления огромно го количества параметров, неточное или ошибочное указание которых при водит к серии проблемных ситуаций. Поэтому настоятельно рекомендует ся выполнять все наиболее ответственные (разовые) команды с помощью Enterprise Manager в визуальном режиме.
Основные манипуляции, связанные с изменением наименования, разме ра и положения файлов БД (с версии Microsoft SQL Server 2000 появляется возможность усечения БД и журнала транзакций), выполняются с помощью директивы:
ALTER DATABASE DB_name... параметры ...
(полный синтаксис конструкции очень сложен и объемен).
В ряде случаев рекомендуется пользоваться следующими специальными функциями. Передача прав владения БД возможна только из командной строки SQL и только в рамках БД, владелец которой должен быть изменен. Например:
USE DB_name sp_changedbowner ’Administrator’
Переименование БД возможно только из строки SQL: sp_renamedb ’старое_имя_БД’, ’новое_имя_БД’
Удаление БД происходит либо визуально средствами Enterprise Manager, либо директивой SQL:
DROP DATABASE ’имя_БД’