Задача №12
ДАНО: |
Таблицы реляционной базы данных SQL Server |
||||
Таблица |
Реквизиты |
||||
Книги |
Код книги, название, число страниц, код издателя, дата выхода |
||||
Авторы |
Код автора, фамилия, дата рождения, место рождения |
||||
Издатели |
Код издателя, имя издателя, адрес издателя |
||||
Автор книги |
Код автора, код книги |
||||
ТРЕБУЕТСЯ: |
1. Изобразить схему базы данных. 2. Создать таблицы SQL Server. 3. Обеспечить безопасность базы данных. |
||||
ОГРАНИЧЕНИЯ: |
· Необходимый уровень безопасности базы данных обеспечить путем создания групп пользователей, которые могут просматривать сводку, обобщающую данные из всех таблиц (без отображения кодов). · Заданный уровень безопасности обеспечить с помощью видов и хранимых процедур. · Запросы на создание объектов базы данных реализовать на Transact-SQL. |
||||
РЕШЕНИЕ:
CREATE TABLE [dbo].[ [Knigi] (
[KodKnigi] [bigint] NOT NULL ,
[Nazvanie] [char] (10) NOT NULL,
[ChisloStranits] [bigint] NOT NULL,
[KodIzdatelya] [bigint] NULL ,
[DataVihoda] [datetime] NULL ,
CONSTRAINT [PK_Knigi] PRIMARY KEY
(
[KodKnigi]
) ,
CONSTRAINT [FK_Knigi_Izdateli] FOREIGN KEY
(
[KodIzdatelya]
) REFERENCES [dbo.][Izdateli] ([KodIzdatelya] )
)
USE Teis /* Выбирается база Teis */
GO
exec sp_addlogin teis_view, 12345 /* создаетсялогин teis_view */
GO
exec sp_adduser teis_view, teis_v /* создаетсяпользователь teis_v */
GO
exec sp_addrole viewer, dbo /* создаетсяроль viever, владелец dbo */
GO
exec sp_addrolemember viewer, teis_v /* пользователю teis_v добавляетсяроль viewer */
GO
CreateView имя_представления [(имя_столбца,…)]
Asкоманда_select
[With Check Option]
CREATE VIEW userview
AS
SELECT
[ImyaIzdatelya],
[AdreaIzdatelya],
[Familia],
[DataRojdenya],
[MastoRojdenya],
[Nazvanie],
[ChisloStranits],
[DataVihoda]
FROM
[Izdateli],
[Avtory],
[Knigi],
[AvtorKnigi]
WHERE
Knigi.KodKnigi=AvtorKnigi.KodKnigi
AND
AvtorKnigi.KodAvtora=Avtory.KodAvtora
AND
Knigi.KodIzdatelya=Izdateli.KodIzdatelya
Grantсписок_прав_доступа On имя_объекта
To имя_пользователя [,…n]
Grantсписок_прав_доступа To имя_пользователя [,…n]
GO
grant select on dbo.userview to teis_v
GO
deny select,insert,update on dbo.avtory to teis_v
GO
deny select,insert,update on dbo.AvtorKnigi to teis_v
GO
deny select,insert,update on dbo.Izdateli to teis_v
GO
deny select,insert,update on dbo.Knigi to teis_v
Задача №13
ДАНО: |
Таблицы реляционной базы данных ORACLE |
||||
Таблица |
Реквизиты |
||||
Фильм |
Код фильма, название фильма, режиссер, стоимость, количество экземпляров |
||||
Клиент |
Код клиента, адрес, телефон |
||||
Договор |
Код договора, код фильма, код клиента, дата выдачи, дата возврата |
||||
ТРЕБУЕТСЯ: |
1. Создать триггер, который поддерживал бы в актуальном состоянии значение в поле «количество экземпляров» таблицы Фильм. 2. В словаре данных проверить наличие и состояние триггера. 3. Проверить работу триггера. |
||||
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.