|
|
|
Application Role
|
|||
|---|---|---|---|
|
#18+
Господа, подскажите, пожалуйста, как использовать Application Role? Для чего она предназначена? Может ли она быть владельцем таблиц? Как дать пользователю эту, если это возможно? Не понятно как установит соединение используя пароль этой роли - логина то нет... В BOL не могу найти про это... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2002, 09:15:58 |
|
||
|
Application Role
|
|||
|---|---|---|---|
|
#18+
предназначена для ограничения доступа к объектам. можно запретить доступ к обектам для пользователей базы и разрешить его только для approle, тогда работать с объектами базы можно будет только из приложения. пользователю ее в явном виде дать нельзя. из приложения ее можно активировать так Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2002, 09:40:47 |
|
||
|
Application Role
|
|||
|---|---|---|---|
|
#18+
Спасибо - стало намного яснее Т.е. зная пароль, я могу активировать эту роль из приложения. Нужно ли для этого обладать какими-то особыми правами? Или активировать approle может любой пользователь? Может ли быть approle владельцем таблиц и выполнять с ними запросы типа ALTER TABLE ? Или CREATE TABLE [AppRoleName].[TableName]? На что влияет параметр @encrypt ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2002, 09:59:29 |
|
||
|
Application Role
|
|||
|---|---|---|---|
|
#18+
approle можно включить в роль dbo никаких особых прав для активации роли не нужно, т.е. достаточно иметь доступ к базе ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2002, 10:10:53 |
|
||
|
Application Role
|
|||
|---|---|---|---|
|
#18+
Процедуру sp_setapprole имеет право выполнять любой пользователь. Только учти один нюанс - одна база-одна роль. Если нужно будет залезть в другую БД на этом же сервере, он залезет в неё с правами guest. То есть роль действительна только в своей БД. @encrypt - шифровать ли пароль. А зачем делать роль владельцем ? Для этого есть dbo. А способы доступа к информации - только через хранимые процедуры. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2002, 10:13:16 |
|
||
|
Application Role
|
|||
|---|---|---|---|
|
#18+
>>Только учти один нюанс - одна база-одна роль. Это не совсем так. Одна база - много ролей. Но в каждый конкретный момент может быть активна только одна роль. -- Еще нужно учитывать такой факт - после вызова sp_setapprole теряются все привелегии, которые были у пользователя перед активацией роли. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2002, 11:50:40 |
|
||
|
Application Role
|
|||
|---|---|---|---|
|
#18+
>А зачем делать роль владельцем ? Для этого есть dbo. А >способы доступа к информации - только через хранимые >процедуры. Чтобы создавать объекты БД(таблицы, например) от имени dbo надо обладать привилегией на CREATE TABLE и DROP TABLE Я боюсь, что любой маломальски грамотный юзер обладающий данной привилегией может удалить таблицу не только через мои хр.процедуры но и просто так. А это недопустимо. А если я буду создавать таблицы, владельцем которых будет AppRole то и удалить злонамеренный юзер сможет только их. А как потом вернуть те, старые, привилегии, которых лшился пользователь получив AppRole? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.11.2002, 09:11:51 |
|
||
|
Application Role
|
|||
|---|---|---|---|
|
#18+
>>А как потом вернуть те, старые, привилегии, которых >>лшился пользователь получив AppRole? ...disconnect ... connect... Я параллельно создаю дополнительную сессию, чтобы выполнить sp_addlogin, sp_droplogin, т.к. эти процедуры нельзя в принципе выполнить через application role. В этой сессии sp_setapprole не вызывается естественно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.11.2002, 09:30:07 |
|
||
|
Application Role
|
|||
|---|---|---|---|
|
#18+
Ладно, с AppRole вроде понятно - еще поковыряюсь, будет еще понятнее. Не понятно только - чтобы активировать роль в приложении необходимо знать пароль к ней. А где этот пароль хранить? Зашить в код - слишком топорно. Закриптовать и хранить в виде настройки - тоже проблем не оберешься. Как лучше быть? Может посоветует кто-нибудь - как лучше решить такую проблему - дать пользователю возможность создавать и удалять таблицы, но делать это только из моей программы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.11.2002, 09:49:35 |
|
||
|
Application Role
|
|||
|---|---|---|---|
|
#18+
>>А где этот пароль хранить? Тут я даже не знаю... Где не храни - всегда найдется умник, который его вычислит. Лучше всего (ИМХО) активизировать роль из хранимой процедуры на сервере и пароль хранить в какой-нибудь табличке (зашифрованный естественно и никаких прав на эту таблицу никому не давать) и на клиента его не передавать. Но увы - вызов sp_set approle нельзя делать внутри другой хранимой процедуры. У нас пока пароль жестко забит в коде. Понятно, что надо чего-то менять, но я не знаю что. Хранение его во внешнем файле или реестре с шифрованием всех проблем не решит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.11.2002, 10:08:49 |
|
||
|
Application Role
|
|||
|---|---|---|---|
|
#18+
Вот и я о том же... А почему нельзя setapprole вызывать из другой процедуры? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.11.2002, 10:34:49 |
|
||
|
Application Role
|
|||
|---|---|---|---|
|
#18+
>>А почему нельзя setapprole вызывать из другой процедуры? Не знаю, так захотели разработчики Microsoft. Вот код sp_setapprole (7.0.), оттуда все видно: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.11.2002, 10:40:49 |
|
||
|
Application Role
|
|||
|---|---|---|---|
|
#18+
А если это выкинуть? Будет работать? У меня пока время нет на проверку ... :( -- SP MUST BE CALLED AT ADHOC LEVEL -- if (@@nestlevel > 1) begin raiserror(15422,-1,-1) return (1) end ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.11.2002, 10:46:25 |
|
||
|
|

start [/forum/topic.php?fid=46&fpage=3384&tid=1819078]: |
0ms |
get settings: |
6ms |
get forum list: |
14ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
24ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
45ms |
get tp. blocked users: |
1ms |
| others: | 209ms |
| total: | 313ms |

| 0 / 0 |
