Разработка программы, обеспечивающую с помощью средств языка С++ ввод анкетных данных студентов и вывод в табличном виде списка студентов, отобранных по заданному условию, страница 8

Задача №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.  Проверить работу триггера.