***DBユーザーのログインのマッピングを変更する [#e49e26eb]
SSMSのGUIにて変更できるものとばかり思っていたが、できない模様・・・
DBのユーザーをALTER USERにて変更すればよいだけ。これで該当するログインがマッピングされる。
 use DBNAME
 ALTER USER [myname] with LOGIN = [myname]

*** ADO.NETから非管理者ユーザーがSQLServer認証ログインのパスワードを変更する [#ndeebd7a]
一般にアドミンがユーザーのパスワードを変更するには''ALTER LOGIN''だ。しかし、ここで管理者が介在せず、クライアント端末でADO.NETから接続し、パスワードを変更するケースの話をする。まずConnectionをインスタンス化し、T-SQLを実行するのだが、ユーザーの権限でALTER LOGINできないし、そもそも、もし、ログインの有効期限が切れていた場合、ログインすらさせてくれない。有効期限が切れていた場合に、新しくユーザーにパスワードを入力させる画面を出して、パスワードを変更するにはどうすればよいか。実は.Net Framework2.0より ''SqlConnection.ChangePassword''なる静的メソッドがあり、SQL Server 2005以上であればクライアント端末よりパスワードを変更させることができる。どういう仕組みでやっているのかはわからないが、接続文字列と変更後のパスワードを引数で渡すだけでいい。
 SqlConnection.ChangePassword(connectionString, 'piyopiyo');
この後、引数の接続文字列内のパスワードは無効になるので、その辺は適当に後処理しとく必要あり。
----
[[CategorySQLServer]]

|New|Edit|Diff|History|Attach|Copy|Rename|
HTML convert time: 0.006 sec.