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

РЕШЕНИЕ:

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_read, 12345 –добавляем логин, аргументы: новый логин, пароль

GO

exec sp_adduser teis_read, tr – добавляем пользователя, аргументы: логин, имя нового пользователя

GO

exec sp_addrole reader, dbo – добавляем роль: имя новой роли, владелец новой роли БД

GO

exec sp_addrolemember reader, tr – добавляем пользователя tr к роли reader

GO

CREATE VIEW avtor_shared

as

select Familia,DataRojdenya,MastoRojdenya from dbo.Avtory

GO

grant select on dbo.avtor_shared to reader

GO

deny select,insert,update on dbo.avtory to reader

Grantсписок_прав_доступа On имя_объекта

To имя_пользователя [,…n]

Grantсписок_прав_доступа To имя_пользователя [,…n]

CreateView имя_представления [(имя_столбца,…)]

Asкоманда_select

[With Check Option]

Задача №11

ДАНО:

Таблицы реляционной базы данных 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_ins, 12345 - добавляем логин, аргументы: новый логин, пароль

GO

exec sp_adduser teis_ins, teis_inserter - добавляем пользователя, аргументы: логин, имя нового пользователя

GO

exec sp_addrole updater, dbo - добавляем роль: имя новой роли, владелец новой роли БД

GO

exec sp_addrolemember updater, teis_inserter - добавляем пользователя tr к роли reader

GO

CREATE PROCedure t_ins

(@KodAvtora bigint,

@Familia char(10),

@DataRojdenya datetime,

@MastoRojdenya char(10)

)

AS

if user_name()='teis_inserter'

Begin

INSERT INTO [Avtory]([KodAvtora], [Familia], [DataRojdenya], [MastoRojdenya])

VALUES(@KodAvtora, @Familia, @DataRojdenya, @MastoRojdenya)

END

ELSE

Print 'No access'

GO

grant execute on dbo.t_ins to teis_ins

GO

deny select,insert,update on dbo.avtory to teis_ins

Grantсписок_прав_доступа On имя_объекта

To имя_пользователя [,…n]

Grantсписок_прав_доступа To имя_пользователя [,…n]