powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / SP_SETAPPROLE проблема.
10 сообщений из 10, страница 1 из 1
SP_SETAPPROLE проблема.
    #32414925
KВладимир
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Уважаемый all!
Кто знает, как в C# вызвать эту процедуру используя кодирование пароля? В других языках проблем с этим не было. Перебробовал кучу вариантов - не катит. Просьба непроверенные предположения не публиковать!
...
Рейтинг: 0 / 0
SP_SETAPPROLE проблема.
    #32415191
Фотография ziktuw
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вариант нормального исполнения sp_setapprole только один: это должно быть SqlCommand (или OleDbCommand) только ExecuteNonQuery и только без использования параметров.
...
Рейтинг: 0 / 0
SP_SETAPPROLE проблема.
    #32415272
KВладимир
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Это и так понятно!
Вариант
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'" !

Пробовал подставить разные варианты параметров - не катит. Есть рабочий пример ?!
...
Рейтинг: 0 / 0
SP_SETAPPROLE проблема.
    #32415509
Фотография ziktuw
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Теперь понятно в чем дело. Функции ODBC типа {Encrypt N 'Pwd'} поддерживаются обычным OLEDB-провайдером, но не поддерживаются managed провайдером для MSSQL. Используйте OledbCommand.
...
Рейтинг: 0 / 0
SP_SETAPPROLE проблема.
    #32415524
Фотография ziktuw
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Впрочем, с managed-провайдером тоже можно (и работает), если вместо {Encrypt N 'Pwd'} подставить его предвычисленное значение (в данном случае 0xA0A5D2A5E3A5)
...
Рейтинг: 0 / 0
SP_SETAPPROLE проблема.
    #32415565
KВладимир
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо за подсказку, Dankov!
Сейчас буду пробовать OledbCommand.
Вопрос по второму репли. Что за птица "предвычисленное значение"? Где про это почитать, если долго объяснять?
...
Рейтинг: 0 / 0
SP_SETAPPROLE проблема.
    #32415786
Фотография ziktuw
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Где почитать, даже не знаю.

А предвычислить - это просто в Query Analyser'e выполнить запрос
SELECT {Encrypt N 'Pwd'}
и скопировать результат
...
Рейтинг: 0 / 0
SP_SETAPPROLE проблема.
    #32415996
KВладимир
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо. Понял. Вычичлил. А дальше что с ним делать?
Есть:
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 - нет. Что говорит опыт?
...
Рейтинг: 0 / 0
SP_SETAPPROLE проблема.
    #32416483
Фотография ziktuw
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
SqlCommand sqlCmd = new SqlCommand( "EXEC sp_setapprole 'Role', 0xA0A5D2A5E3A5, 'odbc' " , sqlConn); 
sqlCmd.ExecuteNonQuery(); 


В ADO пуллинг отключается параметром "OLE DB Services=-2;"
...
Рейтинг: 0 / 0
SP_SETAPPROLE проблема.
    #32416901
KВладимир
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А ведь работает! Спасибо, Dankov! Удачи!
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / SP_SETAPPROLE проблема.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]