Текущий архив: 2015.09.10;
Скачать: CL | DM;
Вниз
FireBird View с параметрами. Найти похожие ветки
← →
Михаил (2014-03-03 18:01) [0]В View можно передавать параметры для подзапроса?
select * from myview
create view myview(c)
as
select ulogin, upassword from users where ulogin=? and upassword=?
← →
Михаил (2014-03-03 18:02) [1]пардон
select count(*) from users where ulogin=? and upassword=?
← →
clickmaker © (2014-03-03 18:28) [2]во вью вообще нельзя передавать параметры, это по сути виртуальная таблица. Параметры можно передавать в запрос к вью
← →
Михаил (2014-03-03 18:31) [3]
> Параметры можно передавать в запрос к вью
Покажите
← →
clickmaker © (2014-03-03 18:49) [4]> Покажите
точно так же, как в запрос к таблице
← →
Михаил (2014-03-03 19:10) [5]Если напрямую пользователю к таблице доступ запрещен на все, но нужно через view достать информацию из таблицы - используем view.
Вопрос в том как в select count(*) from users where ulogin=? and upassword=?
подставить значения при select from myview
← →
clickmaker © (2014-03-03 19:12) [6]а в чем проблема? вместо users подставить myview
← →
Михаил (2014-03-03 19:19) [7]
> clickmaker © (03.03.14 19:12) [6]
Проблема передать параметры во внутренний запрос view? доступ на прямую к таблице запрещен.
select * from myview where user.ulogin = "user" and user.upassword = "123";
← →
clickmaker © (2014-03-03 19:24) [8]> from myview where user.ulogin
ищу не там, где потерял, а там, где светлее?
← →
Ega23 © (2014-03-03 19:27) [9]select * from myview where myview.ulogin = "user" and myview.upassword = "123";
Только смысл какой в такой вьюхе?
← →
Кщд (2014-03-03 20:42) [10]>Ega23 © (03.03.14 19:27) [9]
похоже, ТС хочет странного, а именно - обратиться к полям, которые есть в подлежащих таблицах, но нет в представлении
← →
Ega23 © (2014-03-03 21:51) [11]
> похоже, ТС хочет странного, а именно - обратиться к полям,
> которые есть в подлежащих таблицах, но нет в представлении
ХП?
← →
Inovet © (2014-03-03 21:52) [12]> [10] Кщд (03.03.14 20:42)
Вроде есть они в [0].
← →
Кщд (2014-03-04 08:42) [13]>Inovet © (03.03.14 21:52) [12]
а вроде - нет: "Михаил (03.03.14 18:02) [1]"
))
>Ega23 © (03.03.14 21:51) [11]
мне немного всё равно)
← →
Inovet © (2014-03-04 10:30) [14]> [13] Кщд (04.03.14 08:42)
Да, тогда нет.
← →
Михаил (2014-03-04 11:29) [15]Может быть вы подскажите как это делается правильно.
Ну попробую объяснить еще раз чего я хотел:
1) Вот выставлены такие права на таблицу и вью
http://s43.radikal.ru/i101/1403/b4/00e08a5c57a4.png
Для SYSDBA сменили пароль и им не пользуемся, для подключения к БД используем пользователя ZUSER.
2)Если дать ZUSER право на select на прямую к таблице users, то так называемый злоумышленник может с другого клиента выгрести все логины/пароли.
Вот я и начал мудрить через VIEW.
← →
Кщд (2014-03-04 11:44) [16]>Михаил (04.03.14 11:29) [15]
хранимая процедура, как советовали
либо использовать контексты
← →
Михаил (2014-03-04 12:24) [17]
> Кщд (04.03.14 11:44) [16]
Если доступ к таблице запрещен, то и из процедуры доступа не будет.
← →
clickmaker © (2014-03-04 12:27) [18]обычно запрещают доступ на прямой селект из таблиц, но разврешают из вьюх и выполнение хранимок.
В особо тяжелых случаях таблицы и вьюхи могут даже разносить по разным базам.
← →
Михаил (2014-03-04 12:37) [19]
> обычно запрещают доступ на прямой селект из таблиц, но разврешают
> из вьюх и выполнение хранимок.
Ну вот пример
http://i038.radikal.ru/1403/1e/28e25499849e.png
и если в NEW_PROCEDURE будет запрос из таблицы USERS, то это будет ошибкой доступа.
Я вы пишите что так можно.
← →
Кщд (2014-03-04 12:44) [20]>Михаил (04.03.14 12:24) [17]
во-первых, враки(вы же версию скрываете, ага?)
во-вторых, контексты - читать умеем?
← →
Кщд (2014-03-04 12:47) [21]>Михаил (04.03.14 12:37) [19]
если делать неправильно, то нельзя
если правильно, можно(и нужно) делать именно так
← →
Михаил (2014-03-04 13:02) [22]
> если делать неправильно, то нельзя
> если правильно, можно(и нужно) делать именно так
Как правильно останется секретом?
← →
Михаил (2014-03-04 13:09) [23]
> во-первых, враки(вы же версию скрываете, ага?)
FB 2.5
← →
Кщд (2014-03-04 14:03) [24]>Михаил (04.03.14 13:09) [23]
дать права процедуре
тех, кто не желает читать документацию по используемому средству, окружают сплошные секреты
← →
Михаил (2014-03-04 14:43) [25]
> Кщд (04.03.14 14:03) [24]
http://i038.radikal.ru/1403/1e/28e25499849e.png. Что не так дал?
На вызов процедуры права даны, не даны права таблице которая участвует в теле процедуры.
А, и не будь голословным, где же это в документации?
← →
Inovet © (2014-03-04 14:45) [26]> [25] Михаил (04.03.14 14:43)
> На вызов процедуры права даны
Осталось дать процедуре.
← →
Михаил (2014-03-04 14:52) [27]Так, стоп, ничего не пишите...
← →
Михаил (2014-03-04 15:07) [28]Все спасибо, очень виноват.
GRANT SELECT ON USERS TO PROCEDURE NEW_PROCEDURE;
← →
Ega23 © (2014-03-04 15:22) [29]Видишь, как всё просто? :)
← →
Михаил (2014-03-04 15:56) [30]
> Ega23 © (04.03.14 15:22) [29]
Зачем было сколько мучать?
← →
Rouse_ © (2014-03-04 18:04) [31]
> Зачем было сколько мучать?
Ega23 © (03.03.14 21:51) [11]
Страницы: 1 вся ветка
Текущий архив: 2015.09.10;
Скачать: CL | DM;
Память: 0.51 MB
Время: 0.037 c