|
|
|
sp_addrolemember
|
|||
|---|---|---|---|
|
#18+
Уважаемая группа, есть такой вопрос: требуется создать процедуру которая динамически добавляет пользователя к роли при обращении к ней. -- создаём от имени dbo create procedure dbo.myProc -- делаем проверку прав и назначаем роль exec sp_addrolemember 'somerole' 'someusers' но при выполнении возникает ошибка что у пользователя недостаточно прав на добавления пользователя к роли. Как такое может быть если мы процедура запускается от имени создателя (dbo)? Или я не прав? Заранее благодарен за любую информацию по этому поводу или вообще о использовании ролей в процедурах -- doctor_no ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2002, 09:40:33 |
|
||
|
sp_addrolemember
|
|||
|---|---|---|---|
|
#18+
Вот в BOL написано...Only members of the sysadmin fixed server role and the db_owner fixed database role can execute sp_addrolemember to add a member to fixed database roles. Role owners can execute sp_addrolemember to add a member to any SQL Server role they own. Members of the db_securityadmin fixed database role can add users to any user-defined role. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2002, 11:18:06 |
|
||
|
sp_addrolemember
|
|||
|---|---|---|---|
|
#18+
Во-первых: Is the security account being added to the role. security_account is sysname, with no default. security_account can be any valid SQL Server user, SQL Server role, or any Microsoft Windows NT® user or group granted access to the current database . When adding Windows NT users or groups, specify the name that the Windows NT user or group is known by in the database ( added using sp_grantdbaccess ). Во-вторых: Fima опередил :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2002, 11:22:46 |
|
||
|
sp_addrolemember
|
|||
|---|---|---|---|
|
#18+
Да но процедура создана от dbo и по сему должна иметь права на sp_addrolemember. Tак? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2002, 11:28:39 |
|
||
|
sp_addrolemember
|
|||
|---|---|---|---|
|
#18+
Так то оно так, но если вы посмотрите на текст этой процедуры, то увидите там проверку с помощью функции is_member() текущего пользователя на принадлежность к жестко заданным ролям. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2002, 11:32:55 |
|
||
|
sp_addrolemember
|
|||
|---|---|---|---|
|
#18+
У меня все работает. Только что проверил. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2002, 11:36:54 |
|
||
|
sp_addrolemember
|
|||
|---|---|---|---|
|
#18+
А так - правильно говорит Glory. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2002, 11:38:30 |
|
||
|
sp_addrolemember
|
|||
|---|---|---|---|
|
#18+
Так получается что я должен быть уже в роли чтобы её себе назначить? Это как? Может быть роль которую я создал нужно было создать с Код: plaintext и is_member() обращается к роли? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2002, 14:47:52 |
|
||
|
sp_addrolemember
|
|||
|---|---|---|---|
|
#18+
В коде этой процедуры есть такая проверка (взято с сервера 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. Поэтому без разницы под кем создана процедура myProc, важно, чтобы пользователь, который ее запустил на выполнение входил в указанные роли. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2002, 20:13:59 |
|
||
|
|

start [/forum/topic.php?fid=46&msg=32064254&tid=1819133]: |
0ms |
get settings: |
7ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
32ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
30ms |
get tp. blocked users: |
1ms |
| others: | 240ms |
| total: | 333ms |

| 0 / 0 |
