Модераторы: Akina
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Подзапрос, возвращающий все таблицы БД 
:(
    Опции темы
Hohhi
Дата 13.2.2010, 23:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 171
Регистрация: 25.2.2006
Где: Молдова

Репутация: нет
Всего: нет



Здраствуйте! Задача- вернуть в подзапросе все таблицы БД. Цель- разрешить определенной роли только просматривать SELECTами всю БД. Помогите с подзапросом или предложите альтернативу достижения поставленной цели. Буду благодарен smile 
PM MAIL ICQ   Вверх
tusha
Дата 14.2.2010, 01:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 98
Регистрация: 17.7.2008

Репутация: нет
Всего: 1



зачем запрос? все выставляется командой grant select on <table> to <....>

а вообще - 
Код

select * from sys.objects where type = 'U'

PM MAIL   Вверх
Hohhi
Дата 14.2.2010, 11:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 171
Регистрация: 25.2.2006
Где: Молдова

Репутация: нет
Всего: нет



tusha, А затем при добавлении таблиц в БД переписывать запрос? Не гибко как то.
Не лучше ли так?
Код

grant select on (select * from sys.objects where type = 'U') to <....>

PM MAIL ICQ   Вверх
tusha
Дата 14.2.2010, 13:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 98
Регистрация: 17.7.2008

Репутация: нет
Всего: 1



не знаю. 
я взял за привычку при создании таблицы сразу раздавать гранты.
типа 
Код

create table mytable(....)
GO
grant select,insert,update,delete on mytable to ...
GO
и так далее

Ваш  способ подойдет если у Вас из приложения создаются таблицы. но наверное это както неправильно - я думаю приложение должно быть отдельно, бд отдельно

Добавлено через 5 минут и 50 секунд
тем более конструкции типа 
Код

grant select on (select * from sys.objects where type = 'U') to <....>

не работают
надо цикл., или использовать процедуру sp_msforeachtable
учтите что гранты надо раздавать не только на таблицы - а на вьюхи/процедуры 
(на процедуру синтаксис другой - 
Код

grant exec on ... to ...
)

Добавлено через 7 минут и 56 секунд
view - 
Код

select * from sys.objects where type = 'V'

stored prosedures
Код

select * from sys.objects where type = 'P'

PM MAIL   Вверх
Hohhi
Дата 14.2.2010, 14:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 171
Регистрация: 25.2.2006
Где: Молдова

Репутация: нет
Всего: нет



tusha, спасибо, теперь думаю разберусь
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "MS SQL"
Akina

Akina

Запрещается!

Публиковать ссылки и обсуждать взлом чего бы то ни было.

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы составления неспецифических запросов рассматриваются здесь
  • Используйте теги [code=sql][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Zloxa, Akina.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MS SQL Server | Следующая тема »


 




[ Время генерации скрипта: 0.1069 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.