RSS    

   Реферат: SQL Server 2000

Аналогичные рекомендации касаются разрешений на выполнение команд Transact-SQL. Можно спроектировать базу данных таким образом, что выпол­нять конкретные действия — создание таблиц, представлений, правил, резерв­ных копий и т. д. — будут строго определенные пользователи.

Права на доступ к объектам баз данных

Работа с данными и выполнение хранимых процедур требуют наличия класса доступа, называемого правами на доступ к объектам баз данных. Под объектами подразумеваются таблицы, столбцы таблиц, представления, хранимые процеду­ры. Права на доступ к объектам баз данных контролируют возможность выпол­нения пользователями, например, команд SELECT, INSERT, UPDATE и DELETE для таблиц и представлений. Таким образом, если пользователю необходимо доба­вить новые данные в таблицу, ему следует предоставить право INSERT (вставка записей в таблицу). Предоставление же пользователю права EXECUTE разрешает ему выполнение каких-либо хранимых процедур.

Для различных объектов применяются разные наборы прав доступа к ним: О SELECT, INSERT, UPDATE, DELETE, REFERENCES- эти права могут быть приме­нены для таблицы или представления;

О SELECT и UPDATE — эти права могут быть применены к конкретному столбцу таблицы или представления;

О EXECUTE— это право применяется только к хранимым процедурам и функ­циям. Ниже приводится более подробное описание каждого из этих прав.

О INSERT. Это право позволяет вставлять в таблицу или представление новые строки. Как следствие, право INSERT может быть выдано только на уровне таблицы или представления и не может быть выдано на уровне столбца.

О UPDATE. Это право выдается либо на уровне таблицы, что позволяет изменять все данные в таблице, либо на уровне отдельного столбца, что разрешает из­менять данные только в пределах конкретного столбца.

О DELETE. Это право позволяет удалять строки из таблицы или представления. Как и право INSERT, право DELETE может быть выдано только на уровне таб­лицы или представления и не может быть выдано на уровне столбца.

О SELECT. Разрешает выборку данных. Может выдаваться как на уровне табли­цы, так и на уровне отдельного столбца.

О REFERENCES. Возможность ссылаться на указанный объект. Применительно к таблицам разрешает пользователю создавать внешние ключи, ссылающиеся на первичный ключ или уникальный столбец этой таблицы. Применительно к представлениям право REFERENCES позволяет связывать представление со схемами таблиц, на основе которых строится представление. Это позволяет отслеживать изменения структуры исходных таблиц, которые могут повли­ять на работу представления. Право REFERENCES не существовало в предыду­щих версиях SQL Server.

Как следует из вышеизложенного, доступ можно предоставлять как на уров­не всей таблицы или представления, так и на уровне отдельного столбца. Обыч­но не практикуется управление правами доступа на уровне конкретного столбца. Если в таблице имеется один или более столбцов, доступ пользователей к кото­рым необходимо ограничить, то в базе данных часто создается представление (view), включающее только те столбцы исходной таблицы, доступ к которым разрешен.

Предоставить или отклонить доступ пользователю базы данных ко всем объек­там базы данных можно при помощи встроенных ролей базы данных. Напри­мер, для разрешения чтения данных из всех таблиц и представлений базы данных достаточно включить пользователя в фиксированную роль db_datareader, а не изменять права доступа пользователя к каждой таблице и представлению в от­дельности.

Используйте команду GRANT для управления разрешениями пользователя на доступ к объектам базы данных:

GRANT

(ALL [PRIVILEGES] | permiss1on[....n]}

TO security_account[,...n] [WITH GRANT OPTION] [AS role]

Назначение параметров команды GRANT следующее:

О ALL — пользователю предоставляются все доступные разрешения. Этот пара­метр могут использовать только участники роли sysadmln;

О permission — список доступных разрешений, которые предоставляются пользо­вателю (SELECT, INSERT, UPDATE, DELETE, EXECUTE). Вы можете одновременно пре­доставлять несколько разрешений, в этом случае их нужно разделять запятыми;

О security_account — имя того объекта системы безопасности, который необ­ходимо включить в роль. В качестве таких объектов могут выступать как учет­ные записи SQL Server, так и пользователи и группы пользователей Windows NT, которым предоставлен доступ к серверу баз данных;

О table, view, column, stored_procedure, extended_procedure — в качестве данных параметров выступают имена объектов в текущей базе данных, для которых необходимо предоставить доступ;

О WITH GRANT OPTION— использование данного параметра позволяет пользо­вателю, которому вы предоставляете права, назначать права на доступ к объек­ту другим пользователям;

О AS

Для функции можно выдать право на ее выполнение, а,

{

[(columnC....n])]  ON  table   |   ON  table   [-(columnC, . . . n])] I ON stored_procedure

TO  security_account[....n] [CASCADE]

Для запрещения выполнения команд Transact-SQL применяется другая ко­манда:

DENY statement^... .n] ТО security_account[....n]

Параметры данной команды аналогичны параметрам команды GRANT. Пара­метр CASCADE позволяет отзывать права не только у данного пользователя, но также и у всех тех пользователей, кому он предоставил данные права. Поясним смысл вышесказанного на примере. Пусть вы предоставили пользователю Sheridan определенные права:

GRANT  CREATE  TABLE

ТО Sheridan

WITH GRANT OPTION

Допустим, Sheridan предоставляет аналогичные права некоторым пользова­телям. Если впоследствии вам потребуется отозвать разрешения у Sheridan, вы выполните команду:

DENY CREATE TABLE ТО Sheridan CASCADE

При этом будут отозваны и все разрешения, которые Sheridan предоставил другим пользователям.

Создание и обслуживание баз данных

Любая база данных SQL Server 2000 состоит из набора таблиц, содержащих данные, и дополнительных объектов, создаваемых для обработки данных. К та­ким объектам относятся, например, представления, триггеры и хранимые про­цедуры. Данные сохраняются в таблицах в соответствии с их логическим опре­делением, например, данные об имеющихся на складе товарах хранятся в одной таблице, а список персонала — в другой.

SQL Server позволяет одновременно поддерживать множество баз данных, которые могут иметь связи с другими базами данных либо существовать неза­висимо.

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

Настоятельно рекомендую не создавать в системной базе данных master никаких пользователь­ских объектов, хотя это и возможно. База данных master содержит системные таблицы, которые хранят данные о параметрах функционирования SQL Server. Поэтому повреждение данных в этой базе может привести к непредсказуемым последствиям.

SQL Server 2000 предлагает несколько путей создания баз данных. О Использование Enterprise Manager. Для создания базы данных с помощью

Enterprise Manager в контекстном меню папки Databases на нужном сервере.

выберите пункт New Database (новая база данных).                             ;

О Использование мастера Create Database Wizard. На панели инструментов Enterprise Manager щелкните на кнопке Run a Wizard (запустить мастера) и выберите нужного мастера.

О Использование Transact-SQL. Этот метод предполагает выполнение команды

CREATE DATABASE.

Кроме перечисленных методов имеется еще несколько способов создания баз данных, например средствами SQL-DMO. Работа с этими механизмами являет­ся темой отдельной книги и здесь рассматриваться не будет.

Один сервер может поддерживать, максимум, 32 767 баз данных.

Для создания базы данных необходимо указать ее название, владельца (им будет пользователь, создающий базу данных), размер, определить файлы и группы файлов, из которых будет состоять создаваемая база данных.

Перед созданием базы данных необходимо уяснить следующие моменты:

О по умолчанию базы данных разрешено создавать членам фиксированных ро­лей сервера sysadmin и dbcreator, хотя разрешение на создание баз данных можно предоставлять и другим пользователям;

О пользователь, создающий базу данных, автоматически становится ее владель­цем;

О имя (название) базы данных должно соответствовать правилам именования объектов. Для хранения базы данных используется три типа файлов.

О Primary первичный файл. Каждая база данных обязательно имеет такой файл, причем только один. В этом файле хранится системная информация о базе данных и ее объектах. Здесь же размещаются системные таблицы. Кроме того, в первичном файле могут храниться и пользовательские данные. По умол­чанию этот файл имеет расширение .mdf.

О Secondary — вторичный файл. Здесь содержатся пользовательские данные, не поместившиеся в первичном файле. Если база данных небольшая и нет на­добности создавать вторичные файлы, то всю информацию можно хранить в первичном файле. Однако если база данных имеет большие размеры, можно иметь несколько вторичных файлов, причем для удобства работы с данными эти файлы можно хранить на разных дисках. По умолчанию вторичные фай­лы имеют расширение .ndf.

О Transaction Log файл журнала транзакций. Минимальный размер такого файла —512 Кбайт. База данных должна иметь, по крайней мере, один файл журнала транзакций. В этом файле будет храниться информация о транзак­циях, выполняемых в базе данных. По умолчанию файлам журнала транзак­ций присваивается расширение .Idf. Отметим, что файл журнала транзакций не может быть помещен на сжатый диск или удаленный сетевой диск (обще­доступный сетевой каталог).

Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26


Новости


Быстрый поиск

Группа вКонтакте: новости

Пока нет

Новости в Twitter и Facebook

                   

Новости

© 2010.