РЕШЕНИЕ:
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]
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.