Інструкції CLR DDL мови T-SQL та подання каталогів

Завантаження типів CLT в SQL Server вимагає створення двох обєктів бази даних У будь-якому випадку першою повинна бути створена збірка, що містить типи, і вже потім у ній повинні бути створені самі типи Створення збірки – Це, по суті, акт перевірки та завантаження коду MSIL в уявлення каталогу sysassemblies При виконанні інструкції CREATE ASSEMBLY не може бути створено корисних артефактів Ієрархія збірки складається з трьох уявлень

■ sysassemblies Це подання містить один рядок метаданих для кожної збірки, що включає імя збірки і режим безпеки З AS

■ sysassembly_f iles Це подання містить двійкові дані для кожного файлу збірки

■ sysassembly_ref erences Це подання містить по одному рядку для кожної збірки, на яку в маніфесті поточної збірки міститься посилання

Збірки

Інструкція DDL CREATE ASSEMBLY містить всю інформацію, необхідну для заповнення подання каталогу Одночасно на сервері не може існувати безліч копій однієї і тієї ж версії збірки Для заміни простий іменованої складання або її версії строго іменованої необхідно в першу чергу видалити існуючу збірку за допомогою інструкції DROP ASSEMBLY Також можливе модифікувати існуючу збірку за допомогою інструкції ALTER ASSEMBLY При цьому поточна обліковий запис NT повинна мати права читання в місці розташування файлів UNC, звідки має бути завантажена бібліотека dl 1 даної збірки Навіть якщо проект містить безліч файлів джерел, інструкція CREATE ASSEMBLY вимагає, щоб тільки збірки, що складаються з одного файлу MSEL, завантажувалися в SQL Server Делегування не дозволені інструкцією CREATE ASSEMBLY Всі збірки, на які існують посилання, і їх маніфести повинні бути доступні в тому ж місці мережі, що і дана збірка, в іншому випадку виконання інструкції CREATE завершиться помилкою

Завжди створюйте збірки для виробничого середовища SQL Server з жорсткі-Рада мі іменами

Інструкції CREATE ASSEMBLY, DROP ASSEMBLY і ALTER ASSEMBLY за замовчуванням дозволені для використання членам серверної ролі sysadmin і членам ролі бази даних db_owner Якщо рівень захисту З AS для збірки встановлений в EXTERNAL_ACCESS, то обліковий запис користувача, що створює збірку, також повинна мати дозвіл EXTERNAL_ ACCESS:

GRANT EXTERNAL_ACCESS to < п про ль поклику т ель_ ілі_ груп a_Windows>

Якщо режим захисту збірки встановлений в unsafe, збірку можуть створити тільки члени серверної ролі sysadmin

Обєкти бази даних

Після того як збірка створена, в ній може бути створений будь-який тип за допомогою інструкції CREATE для відповідного типу Інструкції DDL і заповнюються подання каталогів можуть включають наступне

■ CREATE PROCEDURE Подання sysobj ects з параметром type, рівним PC.

■ CREATE FUNCTION Подання sysobj ects з параметром type, рівним 11FS , для скалярних функцій або FT – Для табличних функцій

■ CREATE TRIGGER Подання systriggers з параметром parent_class, рівним нулю, для тригерів DDL і рівним одиниці для тригерів DML Уявлення sysobj ects також заповнюються з параметром type, рівним TR, для тригерів DML, але не заповнюються для тригерів DDL

■ CREATE TYPE Подання systypes з параметром is_user_type, рівним одиниці, і з параметром is_assembly_type, також рівним одиниці

■ CREATE AGGREGATE Подання sysobj ects з параметром type, рівним AF.

Користувач, який створює типи CLR в базі даних, повинен бути або власником збірки, або мати до неї дозвіл REFERENCES:

GRANT REFERENCES ON < імя_ з б орки> ТО <пользователь_ілі_группа_ № 1ПС [ОМЗ>

Для перегляду збірок, скомпільованих на сервері, доступно динамічне представлення управління sysdm_loaded_assemblies Типовим запитом, призначеним для визначення складу зборок, використовуваних базою даних в даний час, є наступний: SELECT aclr_name

, USER_NAME (аprincipal_id) as [principal]

, laload_time

, apermission_set_desc FROM sysdm_clr_loaded_assemblies la JOIN sysassemblies a ON laassembly_id = aassembly_id

Програма Visual Studio 2005 для розгортання обєктів інтеграції CLR в базі даних пропонує графічний інтерфейс Під час розгортання за лаштунками виконуються інструкції CREATE ACCEMBLY і CREATE мови DDL Адміністратори та розробники повинні розуміти, як використовуються обидві ці інструкції для завантаження компонентів інтеграції CLR в базу даних Навряд чи розгортання продукту у виробничих умовах за допомогою Visual Studio буде прийнятним варіантом

Джерело: Нільсен, Пол Microsoft SQL Server 2005 Біблія користувача : Пер з англ – М: ООО ІД Вільямс , 2008 – 1232 с : Ил – Парал тит англ

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*