Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
SP_SETAPPROLE проблема.
|
|||
|---|---|---|---|
|
#18+
Уважаемый all! Кто знает, как в C# вызвать эту процедуру используя кодирование пароля? В других языках проблем с этим не было. Перебробовал кучу вариантов - не катит. Просьба непроверенные предположения не публиковать! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2004, 11:41 |
|
||
|
SP_SETAPPROLE проблема.
|
|||
|---|---|---|---|
|
#18+
Вариант нормального исполнения sp_setapprole только один: это должно быть SqlCommand (или OleDbCommand) только ExecuteNonQuery и только без использования параметров. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2004, 13:21 |
|
||
|
SP_SETAPPROLE проблема.
|
|||
|---|---|---|---|
|
#18+
Это и так понятно! Вариант SqlCommand sqlCmd = new SqlCommand("sp_setapprole", sqlConn); sqlCmd.CommandType = CommandType.StoredProcedure; sqlCmd.Parameters.Add("@rolename", SqlDbType.VarChar).Value ="Role"; sqlCmd.Parameters.Add("@password", SqlDbType.VarChar).Value ="Pwd"; sqlCmd.ExecuteNonQuery(); (аналог "EXEC sp_setapprole 'Role', 'Pwd'") прекрасно работает. Вопрос в том, как заставить работать аналог "EXEC sp_setapprole 'Role', {Encrypt N 'Pwd'}, 'odbc'" ! Пробовал подставить разные варианты параметров - не катит. Есть рабочий пример ?! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2004, 13:42 |
|
||
|
SP_SETAPPROLE проблема.
|
|||
|---|---|---|---|
|
#18+
Теперь понятно в чем дело. Функции ODBC типа {Encrypt N 'Pwd'} поддерживаются обычным OLEDB-провайдером, но не поддерживаются managed провайдером для MSSQL. Используйте OledbCommand. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2004, 15:01 |
|
||
|
SP_SETAPPROLE проблема.
|
|||
|---|---|---|---|
|
#18+
Впрочем, с managed-провайдером тоже можно (и работает), если вместо {Encrypt N 'Pwd'} подставить его предвычисленное значение (в данном случае 0xA0A5D2A5E3A5) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2004, 15:07 |
|
||
|
SP_SETAPPROLE проблема.
|
|||
|---|---|---|---|
|
#18+
Спасибо за подсказку, Dankov! Сейчас буду пробовать OledbCommand. Вопрос по второму репли. Что за птица "предвычисленное значение"? Где про это почитать, если долго объяснять? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2004, 15:22 |
|
||
|
SP_SETAPPROLE проблема.
|
|||
|---|---|---|---|
|
#18+
Где почитать, даже не знаю. А предвычислить - это просто в Query Analyser'e выполнить запрос SELECT {Encrypt N 'Pwd'} и скопировать результат ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2004, 16:37 |
|
||
|
SP_SETAPPROLE проблема.
|
|||
|---|---|---|---|
|
#18+
Спасибо. Понял. Вычичлил. А дальше что с ним делать? Есть: SqlCmd.Parameters.Add("@rolename", SqlDbType.VarChar).Value = "Role"; SqlCmd.Parameters.Add("@password", SqlDbType.VarChar).Value = "Pwd"; SqlCmd.Parameters.Add("@encrypt_style", SqlDbType.VarChar).Value = "odbc"; hrSqlCmd.ExecuteNonQuery(); Как это значение подставить вместо "Pwd"? Непонятно. По поводу OleDbCommand. Все работате. Но теперь другой трабл. При закрытии коннекта запись о нем в sysprocess сохраняется. При использовании SQLConnection я вписываю в строку коннекта pooling=false и проблема исчезает. Здесь, при использовании OleDbConnection - нет. Что говорит опыт? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2004, 18:03 |
|
||
|
SP_SETAPPROLE проблема.
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. В ADO пуллинг отключается параметром "OLE DB Services=-2;" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.02.2004, 10:33 |
|
||
|
|

start [/forum/topic.php?fid=20&msg=32415996&tid=1439538]: |
0ms |
get settings: |
12ms |
get forum list: |
18ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
79ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
50ms |
get tp. blocked users: |
1ms |
| others: | 230ms |
| total: | 409ms |

| 0 / 0 |
