|
|
|
Кто вызвал процедуру?
|
|||
|---|---|---|---|
|
#18+
>MiCe Я уже писал на четыре мессаги выше, права проверять. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.09.2002, 18:10:56 |
|
||
|
Кто вызвал процедуру?
|
|||
|---|---|---|---|
|
#18+
опять не понятно..... если права ползователя - то Макс уже писал выше session_user есля права процедуры то и создаваю ее от имени какогото юзера....(create proc user.MyProc ....) и юзай system_user хотя опять таки у меня в голове не укладывается.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.09.2002, 18:30:40 |
|
||
|
Кто вызвал процедуру?
|
|||
|---|---|---|---|
|
#18+
Есть много хранимых процедур, причем одни и те же процедуры могут запускаться либо пользователем, либо другой процедурой. Мне нужно знать, запущена ли процедура пользователем, либо процедурой, причем мне надо знать какой. Мне просто надо различать эти ситуации. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.09.2002, 18:40:59 |
|
||
|
Кто вызвал процедуру?
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.09.2002, 19:10:39 |
|
||
|
Кто вызвал процедуру?
|
|||
|---|---|---|---|
|
#18+
У вас где-то в логике ощибка зарыта - чего-то не приходит на ум задачи с такими требованиями. А определить перед запуском процедуры права нельзя? Так в нормальных приложениях делается ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.09.2002, 10:25:14 |
|
||
|
Кто вызвал процедуру?
|
|||
|---|---|---|---|
|
#18+
2 Underking: В общем Ваш вопрос выглядит так: Как мне защитить свою процедуру от вызова из других процедур написанных (возможно) недобросовестными коллегами по работе Имхо никак, если в нагрузку к существующей писать свою систему разделения прав... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.09.2002, 10:31:18 |
|
||
|
Кто вызвал процедуру?
|
|||
|---|---|---|---|
|
#18+
Ну и в чем же меня разводят??? (Новый русский из анекдота про сделку с дьяволом ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.09.2002, 10:44:23 |
|
||
|
Кто вызвал процедуру?
|
|||
|---|---|---|---|
|
#18+
Ошибся топиком. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.09.2002, 10:45:04 |
|
||
|
Кто вызвал процедуру?
|
|||
|---|---|---|---|
|
#18+
Разделите на интерфейсные процедуры, предназначенные для запуска пользователем и раздайте на них права и системные процедуры (dbo only). Пример Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.09.2002, 12:03:48 |
|
||
|
Кто вызвал процедуру?
|
|||
|---|---|---|---|
|
#18+
>А определить перед запуском процедуры права нельзя? >Так в нормальных приложениях делается А причем тут приложение, процедуру не обязательно из приложения запускать. >В общем Ваш вопрос выглядит так: >Как мне защитить свою процедуру от вызова из других процедур Ну примерно так, разрешить запуск процедуры с набором параметров 1 из одной конкретной процедуры, и с наборором параметров 2 из других процедур, или саму по себе. Пример. Процедура П1 добавляет запись в таблицу услуг. Один из передаваемых параметров - счет. Но его можно передавать только из одной конкретной процедуры П2 (ибо та его сама подставит по своим правилам). Пользователь имеет право запускать только П2. Если он запустит П1 напрямую, ему нужно отказать в доступе. Если в П1 поставить проверку на конкретного пользователя, чей сейчас сеанс, то это проверка сработает и в случае запуска П2, но она не должна работать в том случае. Запретить вызов П1 правали самого MSSQL нельзя, ибо на самом деле там более сложные ситуации. >Разделите на интерфейсные процедуры, предназначенные >для запуска пользователем и раздайте на них права и >системные процедуры (dbo only). Вообщем так и поступили, вернее объявили некоторые процедуры системными, а для пользователя сделали специальные прозрачные процедуры, которые только проверяют права и запускают системные, благо это только для некоторых процедур понадобилось. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.09.2002, 13:59:05 |
|
||
|
Кто вызвал процедуру?
|
|||
|---|---|---|---|
|
#18+
-->> Пример. Процедура П1 добавляет запись в таблицу услуг. Один из передаваемых параметров - счет. Но его можно передавать только из одной конкретной процедуры П2 (ибо та его сама подставит по своим правилам). Пользователь имеет право запускать только П2. Если он запустит П1 напрямую, ему нужно отказать в доступе. Проверку на валидность передаваемых параметров должна делать П2 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.09.2002, 14:30:09 |
|
||
|
Кто вызвал процедуру?
|
|||
|---|---|---|---|
|
#18+
Под приложением я имел ввиду целиком систему. И Makc правильно отметил. А что у вас возможно "сбоку" в базу залезть? Вот кто пытается это сделать и пускай отвечает за это. Если у вас проблемма с этим - тогда надо и вопрос корректнне задавать. Под "сбоку" я имел ввиду не предназначенные для это средства (клиент) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.09.2002, 14:42:03 |
|
||
|
Кто вызвал процедуру?
|
|||
|---|---|---|---|
|
#18+
>Проверку на валидность передаваемых параметров должна делать П2 Правильно, П2 и проверяет. Но и П1 должна иметь свою проверку на право ее выполнять, причем может быть право запускать П2, но не запускать П1. Если смотреть по праву текущего пользователя, то П1 не знает, запустили ее напрямую или через конкретную процедуру. >Под приложением я имел ввиду целиком систему. Вообще клинт - это одно, а сервер - другое. И сервер не должен зависеть от клиента. Сервер должен все уметь делать сам. У меня из квери аналайзера можно отработать любую функцию программы. Клиент - это просто удоблная для пользователя оболочка. >И Makc правильно отметил. А что у вас возможно "сбоку" в базу >залезть? Вот кто пытается это сделать и пускай отвечает за это. Ха, если что-то случиться, виноват будет в первую очередь админ, за то что не доглядел, дал такую возможность. Сервер нужно защитить. Вообще все эти защиты скорее всего реально не понадобятся, скорее всего без клиента никто работать не будет. Но это дырь в программе, которую могут использовать. И будет очень неприятно если кто-то до этого додумается. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.09.2002, 16:38:15 |
|
||
|
|

start [/forum/topic.php?fid=46&msg=32052897&tid=1820076]: |
0ms |
get settings: |
11ms |
get forum list: |
11ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
40ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
58ms |
get tp. blocked users: |
2ms |
| others: | 230ms |
| total: | 372ms |

| 0 / 0 |
