Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Вставка в FileTable  [new]
veselkin
Member

Откуда:
Сообщений: 24
Доброго времени суток!

CREATE view [dbo].[v_MyFileTable]
with view_metadata
as
select stream_id, file_stream, name from dbo.MyFileTable

Права у v_MyFileTable на выборку и вставку. На таблицу MyFileTable не выдано прав и нет запрещений. (в реальной БД view с доп условиями)
При вставке данных...
insert into v_MyFileTable(stream_id, file_stream, name) values (newid(), cast('g' as varbinary(max)), 'filename1')

Пишет:
Сообщение 229, уровень 14, состояние 5, строка 4
Запрещено разрешение "SELECT" на объект "MyFileTable" базы данных "", схемы "dbo".

Если выдать права на выборку для MyFileTable, то вставка через view работает.
Что не так?

Задача: ограничить доступ пользователей на уровне строк к данным из MyFileTable (и на таблицу select не давать).

Microsoft SQL Server 2014 - 12.0.2269.0 (X64)
Jun 10 2015 03:35:45
Copyright (c) Microsoft Corporation
Express Edition (64-bit) on Windows NT 6.1 <X64> (Build 7601: Service Pack 1)
7 апр 17, 15:48    [20378232]     Ответить | Цитировать Сообщить модератору
 Re: Вставка в FileTable  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6801
veselkin,

триггеры?
7 апр 17, 15:56    [20378287]     Ответить | Цитировать Сообщить модератору
 Re: Вставка в FileTable  [new]
veselkin
Member

Откуда:
Сообщений: 24
Триггеров нет.
7 апр 17, 16:18    [20378401]     Ответить | Цитировать Сообщить модератору
 Re: Вставка в FileTable  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6801
veselkin
Триггеров нет.

а вьюха так и выглядит как вы описываете? или
автор
Задача: ограничить доступ пользователей на уровне строк

там ещё функция прицеплена какая нить в WHERE
7 апр 17, 16:28    [20378487]     Ответить | Цитировать Сообщить модератору
 Re: Вставка в FileTable  [new]
veselkin
Member

Откуда:
Сообщений: 24
Специально для теста создал новую. Тестил так как выглядит.
7 апр 17, 16:32    [20378516]     Ответить | Цитировать Сообщить модератору
 Re: Вставка в FileTable  [new]
veselkin
Member

Откуда:
Сообщений: 24
Создал новую БД, FileTable, View, права как в примере, вставка прошла.
Разница между базами: уровень совместимости. В 2014 прошла вставка, в 2012 нет.
Попробую на копии, на уровень 2014...
7 апр 17, 16:42    [20378580]     Ответить | Цитировать Сообщить модератору
 Re: Вставка в FileTable  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6801
veselkin,

та не, дело точно не в уровне, попробовал на 2008/2012/2016. + прямой DENY SELECT на таблицу...
7 апр 17, 16:49    [20378628]     Ответить | Цитировать Сообщить модератору
 Re: Вставка в FileTable  [new]
veselkin
Member

Откуда:
Сообщений: 24
Не в уровне дело, убедился...

Права на MyFileTable
use MyDB
go
select *
from sys.database_permissions
where OBJECT_NAME(major_id) = 'MyFileTable'

Пусто

На view
use MyDB
go
select *
from sys.database_permissions
where OBJECT_NAME(major_id) = 'v_MyFileTable'

class class_desc major_id minor_id grantee_principal_id grantor_principal_id type permission_name state state_desc
1 OBJECT_OR_COLUMN 15339119 0 9 1 SL SELECT G GRANT
1 OBJECT_OR_COLUMN 15339119 0 10 1 IN INSERT G GRANT
1 OBJECT_OR_COLUMN 15339119 0 10 1 SL SELECT G GRANT
7 апр 17, 16:56    [20378688]     Ответить | Цитировать Сообщить модератору
 Re: Вставка в FileTable  [new]
veselkin
Member

Откуда:
Сообщений: 24
use master 
exec sp_helprolemember 'db_denydatareader'

Пусто
7 апр 17, 16:57    [20378696]     Ответить | Цитировать Сообщить модератору
 Re: Вставка в FileTable  [new]
veselkin
Member

Откуда:
Сообщений: 24
Прошу прощения, во вновь созданной БД вставка тоже не проходит.
(под админом вставлял)
7 апр 17, 17:21    [20378787]     Ответить | Цитировать Сообщить модератору
 Re: Вставка в FileTable  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7871
veselkin,

не похоже, что Ваше представление как-то ограничивает доступ на уровне строк.
8 апр 17, 01:16    [20379900]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить