2015-09-25 1 views
0

У меня есть база данных Oracle, подключенная к SQL Server. Соединение работает правильно, но, к сожалению, я не знаю пароль, используемый для этого соединения. Теперь мне нужно изменить пароль в Oracle.Сменить пароль в ORACLE с SQL Server с помощью связанного сервера

Это хорошая идея, чтобы запустить что-то вроде

SELECT * FROM OPENQUERY([oracle], ' 
    ALTER USER OracleUser IDENTIFIED BY pswd; 
    SELECT 1 FROM DUAl') 

Или, может быть, есть другое решение?

UPD Мой запрос завершается с ошибкой

Поставщик OLE DB «OraOLEDB.Oracle» для связанного сервера «оракула» указывает на то, что либо объект не имеет столбцов или текущий пользователь не имеет прав на этом объекте

+0

https://social.msdn.microsoft.com/Forums/sqlserver/en-US/3d9580b8-c335-4344-8691-32d56a39b700/oracle-user-password-change-via-linked-server-with-sql- server-2005? forum = sqldatabaseengine - возможно, это сработает, никогда не пробовал. –

+0

Конечно, лучшей идеей было бы входить в базу данных Oracle с пользователем, который имеет право изменять пароли, роль DBA в качестве примера и работать оттуда? – kevinsky

+1

Спасибо, Роберт. EXEC ('...') AT [oracle] работает для меня. Этот запрос вызвал ошибку «Сервер» oracle «не настроен для RPC для связанного сервера», но я изменил связанный сервер в соответствии с [этой статьей] (http://www.thesqlreport.com/?p=120). И теперь я озадачен ошибкой oracle 'ORA-28221: REPLACE not defined'. Кажется, мне нужно позвонить администратору оракула. –

ответ

0

Правильный синтаксис для изменения пароля в Oracle с SQL Server с помощью связанного сервера

EXEC ('ALTER USER OracleUser IDENTIFIED BY new_password REPLACE old_password') AT [oracle]