Содержание
- 2. Удаленные соединения с БД
- 3. Установка режима проверки подлинности
- 4. Установление паролей Парольную политику можно включить при помощи следующего кода Transact SQL: CREATE LOGIN Mary WITH
- 5. Управление доступом к базам данных Добавляем пользователя базы данных Добавить пользователя базы данных можно при помощи
- 6. Администрирование БД, управление ролями Выполнив запрос системной функции IS_MEMBER, можно проверить, принадлежит ли текущий пользователь к
- 7. Управление доступом к схемам В SQL Server 2005 реализована концепция ANSI для схем. Схемы - это
- 8. Изменяем контекст соединения на базу данных AdventureWorks. USE AdventureWorks; GO Создаем схему Accounting с владельцем Peter.
- 10. Скачать презентацию
Слайд 2
Удаленные соединения с БД
Удаленные соединения с БД
Слайд 3
Установка режима проверки подлинности
Установка режима проверки подлинности
Слайд 4
Установление паролей
Парольную политику можно включить при помощи следующего кода Transact SQL:
CREATE
Установление паролей
Парольную политику можно включить при помощи следующего кода Transact SQL:
CREATE
LOGIN Mary
WITH PASSWORD = '34TY$$543'
MUSTCHANGE,
CHECK EXPIRATION = ON,
CHECK POLICY = ON;
WITH PASSWORD = '34TY$$543'
MUSTCHANGE,
CHECK EXPIRATION = ON,
CHECK POLICY = ON;
Слайд 5
Управление доступом к базам данных
Добавляем пользователя базы данных
Добавить пользователя
Управление доступом к базам данных
Добавляем пользователя базы данных
Добавить пользователя
базы данных можно при помощи инструкции CREATE USER. Следующий пример кода Transact-SQL создает имя входа Peter и сопоставленного с ним пользователя в базе данных Adventure Works:
Создаем имя входа Peter
CREATE LOGIN Peter WITH PASSWORD='Tyu87IOR0';
Изменяем контекст соединения на базу данных AdventureWorks.
USE AdventureWorks;
GO
Добавляем пользователя базы данных Peter, который сопоставлен имени входа Peter в БД AdventureWorks.
CREATE USER Peter FOR LOGIN Peter;
Управляем пользователями базы данных
Проверить, имеет ли текущее имя входа доступ к базе данных, можно при помощи следующей инструкции:
SELECT HAS_DBACCESS('AdventureWorks');
Чтобы получить информацию о пользователях базы данных, можно воспользоваться представлением каталога sys.database_principals.
Если нужно временно отключить доступ пользователя к базе данных, можно отозвать разрешение CONNECT для этого пользователя. Следующий пример отзывает разрешение CONNECT для пользователя Peter:
Изменяем контекст соединения на базу данных AdventureWorks.
USE AdventureWorks;
GO
Отзываем разрешение connect для Peter в AdventureWorks.
REVOKE CONNECT TO Peter;
Создаем имя входа Peter
CREATE LOGIN Peter WITH PASSWORD='Tyu87IOR0';
Изменяем контекст соединения на базу данных AdventureWorks.
USE AdventureWorks;
GO
Добавляем пользователя базы данных Peter, который сопоставлен имени входа Peter в БД AdventureWorks.
CREATE USER Peter FOR LOGIN Peter;
Управляем пользователями базы данных
Проверить, имеет ли текущее имя входа доступ к базе данных, можно при помощи следующей инструкции:
SELECT HAS_DBACCESS('AdventureWorks');
Чтобы получить информацию о пользователях базы данных, можно воспользоваться представлением каталога sys.database_principals.
Если нужно временно отключить доступ пользователя к базе данных, можно отозвать разрешение CONNECT для этого пользователя. Следующий пример отзывает разрешение CONNECT для пользователя Peter:
Изменяем контекст соединения на базу данных AdventureWorks.
USE AdventureWorks;
GO
Отзываем разрешение connect для Peter в AdventureWorks.
REVOKE CONNECT TO Peter;
Слайд 6
Администрирование БД, управление ролями
Выполнив запрос системной функции IS_MEMBER, можно проверить, принадлежит
Администрирование БД, управление ролями
Выполнив запрос системной функции IS_MEMBER, можно проверить, принадлежит
ли текущий пользователь к какой-либо роли базы данных. В следующем примере мы проверим, принадлежит ли текущий пользователь к роли базы данных db_owner.
Изменяем контекст соединения на базу данных AdventureWorks.
USE AdventureWorks;
GO
Проверяем, принадлежит ли текущий пользователь к роли db_owner
SELECT IS_MEMBER ("db_owner");
Совет. Системную функцию IS_MEMBER можно использовать для проверки того, принадлежит ли текущий пользователь также к определенной группе Windows, как показано в следующем примере:
Изменяем контекст соединения на базу данных AdventureWorks.
USE AdventureWorks;
GO
Проверяем, принадлежит ли текущий пользователь к группе Managers в домене ADVWORKS
SELECT IS_MEMBER ("[ADVWORKS\Managers]");
Удалить пользователей из роли базы данных можно при помощи системной хранимой процедуры sp_droprolemember. Если нужно удалить роль базы данных, то используется инструкцияDROP ROLE. Следующий код удаляет пользователя Peter из роли базы данных Auditors, а затем удаляет роль Auditors.
Изменяем контекст соединения на базу данных AdventureWorks.
USE AdventureWorks;
GO
Удаляем пользователя Peter из роли Auditors
EXECUTE sp_droprolemember "Auditors", "Peter";
Удаляем роль Auditors из текущей базы данных
DROP ROLE Auditors;
Изменяем контекст соединения на базу данных AdventureWorks.
USE AdventureWorks;
GO
Проверяем, принадлежит ли текущий пользователь к роли db_owner
SELECT IS_MEMBER ("db_owner");
Совет. Системную функцию IS_MEMBER можно использовать для проверки того, принадлежит ли текущий пользователь также к определенной группе Windows, как показано в следующем примере:
Изменяем контекст соединения на базу данных AdventureWorks.
USE AdventureWorks;
GO
Проверяем, принадлежит ли текущий пользователь к группе Managers в домене ADVWORKS
SELECT IS_MEMBER ("[ADVWORKS\Managers]");
Удалить пользователей из роли базы данных можно при помощи системной хранимой процедуры sp_droprolemember. Если нужно удалить роль базы данных, то используется инструкцияDROP ROLE. Следующий код удаляет пользователя Peter из роли базы данных Auditors, а затем удаляет роль Auditors.
Изменяем контекст соединения на базу данных AdventureWorks.
USE AdventureWorks;
GO
Удаляем пользователя Peter из роли Auditors
EXECUTE sp_droprolemember "Auditors", "Peter";
Удаляем роль Auditors из текущей базы данных
DROP ROLE Auditors;
Слайд 7
Управление доступом к схемам
В SQL Server 2005 реализована концепция ANSI для
Управление доступом к схемам
В SQL Server 2005 реализована концепция ANSI для
схем. Схемы - это контейнеры объектов, которые позволяют группировать объекты базы данных. Схемы оказывают большое влияние на то, как пользователи ссылаются на объекты базы данных. В SQL Server 2005 объект базы данных называется именем, состоящим из четырех компонентов следующей структуры:
...
Слайд 8
Изменяем контекст соединения на базу данных AdventureWorks.
USE AdventureWorks;
GO
Создаем схему Accounting с владельцем Peter.
CREATE SCHEMA Accounting
AUTHORIZATION
Изменяем контекст соединения на базу данных AdventureWorks.
USE AdventureWorks;
GO
Создаем схему Accounting с владельцем Peter.
CREATE SCHEMA Accounting
AUTHORIZATION
Peter;
GO
Создаем таблицу Invoices в схеме Accounting.
CREATE TABLE Accounting.Invoices (
InvoiceID int,
InvoiceDate smalldatetime,
ClientID int);
GO
Предоставляем разрешение SELECT на новую таблицу роли public.
GRANT SELECT ON Accounting.Invoices
TO public; GO
Добавляем строку данных в новую таблицу.
Обратите внимание на двухкомпонентное имя, которое мы используем для обращения к таблице в текущей базе данных.
INSERT INTO Accounting.Invoices
VALUES (101,getdate(),102);
Удалить схему можно при помощи инструкции DROP SCHEMA. В SQL Server 2005 не допускается удаление схемы, если в схеме есть объекты. Информацию о схемах можно получить, выполнив запрос к представлению каталога sys.schemas. Следующий пример выполняет запрос к представлению каталога sys.schemas, чтобы получить информацию о схеме:
SELECT *
FROM sys.schemas;
Следующий код (который можно найти в файлах примеров под именем ManagingAccessToSchemas02.sql ) показывает, как удалить существующую схему, выполнив запрос к объектам, которые содержатся в этой схеме, и удалить сначала эти объекты.
Изменяем контекст соединения на базу данных AdventureWorks.
USE AdventureWorks;
GO
Извлекаем информацию о схеме Accounting.
SELECT s.name AS "Schema",
o.name AS "Object" FROM sys.schemas s INNER JOIN sys.objects o ON s.schema_id=o.schema_id WHERE s.name='Accounting'; GO
Удаляем таблицу Invoices из схемы Accounting.
DROP TABLE Accounting.Invoices;
GO
Удаляем схему Accounting.
DROP SCHEMA Accounting;
GO
Создаем таблицу Invoices в схеме Accounting.
CREATE TABLE Accounting.Invoices (
InvoiceID int,
InvoiceDate smalldatetime,
ClientID int);
GO
Предоставляем разрешение SELECT на новую таблицу роли public.
GRANT SELECT ON Accounting.Invoices
TO public; GO
Добавляем строку данных в новую таблицу.
Обратите внимание на двухкомпонентное имя, которое мы используем для обращения к таблице в текущей базе данных.
INSERT INTO Accounting.Invoices
VALUES (101,getdate(),102);
Удалить схему можно при помощи инструкции DROP SCHEMA. В SQL Server 2005 не допускается удаление схемы, если в схеме есть объекты. Информацию о схемах можно получить, выполнив запрос к представлению каталога sys.schemas. Следующий пример выполняет запрос к представлению каталога sys.schemas, чтобы получить информацию о схеме:
SELECT *
FROM sys.schemas;
Следующий код (который можно найти в файлах примеров под именем ManagingAccessToSchemas02.sql ) показывает, как удалить существующую схему, выполнив запрос к объектам, которые содержатся в этой схеме, и удалить сначала эти объекты.
Изменяем контекст соединения на базу данных AdventureWorks.
USE AdventureWorks;
GO
Извлекаем информацию о схеме Accounting.
SELECT s.name AS "Schema",
o.name AS "Object" FROM sys.schemas s INNER JOIN sys.objects o ON s.schema_id=o.schema_id WHERE s.name='Accounting'; GO
Удаляем таблицу Invoices из схемы Accounting.
DROP TABLE Accounting.Invoices;
GO
Удаляем схему Accounting.
DROP SCHEMA Accounting;
- Предыдущая
Сахарный диабет Следующая -
Солнечные опреснительные установки