C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[2]: C#でAccess2007のパスワードを変更


(過去ログ 91 を表示中)

[トピック内 7 記事 (1 - 7 表示)]  << 0 >>

■54689 / inTopicNo.1)  C#でAccess2007のパスワードを変更
  
□投稿者/ 天野 (1回)-(2010/10/29(Fri) 10:58:42)

分類:[C#] 

mdbファイルのパスワードを変更することはCompactDatabase(OldDb, NewDb);で今まで可能だったのですが、新しいファイル形式(accdb)のパスワードをC#から変更する方法が分からなくて困っています。ご存知の方がおられましたら教えてもらえませんか?

引用返信 編集キー/
■54695 / inTopicNo.2)  Re[1]: C#でAccess2007のパスワードを変更
□投稿者/ shu (134回)-(2010/10/29(Fri) 11:59:51)
No54689 (天野 さん) に返信
> mdbファイルのパスワードを変更することはCompactDatabase(OldDb, NewDb);で今まで可能だったのですが、新しいファイル形式(accdb)のパスワードをC#から変更する方法が分からなくて困っています。ご存知の方がおられましたら教えてもらえませんか?
>
Database.NewPassword(Old,New)でどうです?
引用返信 編集キー/
■54697 / inTopicNo.3)  Re[1]: C#でAccess2007のパスワードを変更
□投稿者/ 魔界の仮面弁士 (1899回)-(2010/10/29(Fri) 13:16:19)
No54689 (天野 さん) に返信
> mdbファイルのパスワードを変更することはCompactDatabase(OldDb, NewDb);で今まで可能だったのですが、
> 新しいファイル形式(accdb)のパスワードをC#から変更する方法が分からなくて困っています。

たとえばこんな感じで。

Microsoft.JET.OLEDB.4.0 でも
Microsoft.ACE.OLEDB.12.0 でも使えます。


OleDbConnectionStringBuilder sb = new OleDbConnectionStringBuilder();
sb.Provider = "Microsoft.ACE.OLEDB.12.0";
sb.DataSource = @"C:\db1.accdb";
sb["Mode"] = "Share Exclusive";
sb["Jet OLEDB:Database Password"] = oldPassword;

using (OleDbConnection con = new OleDbConnection(sb.ToString()))
{
    con.Open();
    using (OleDbCommand cmd = con.CreateCommand())
    {
        cmd.CommandText = string.Format(
            "ALTER DATABASE PASSWORD {0} {1}", newPassword, oldPassword);
        cmd.ExecuteNonQuery();
    }
    con.Close();
}

引用返信 編集キー/
■54705 / inTopicNo.4)  Re[2]: C#でAccess2007のパスワードを変更
□投稿者/ 天野 (2回)-(2010/10/29(Fri) 15:13:09)
No54695 (shu さん) に返信
> ■No54689 (天野 さん) に返信
>>mdbファイルのパスワードを変更することはCompactDatabase(OldDb, NewDb);で今まで可能だったのですが、新しいファイル形式(accdb)のパスワードをC#から変更する方法が分からなくて困っています。ご存知の方がおられましたら教えてもらえませんか?
>>
> Database.NewPassword(Old,New)でどうです?
なるほど、ありがとうございます。
排他モードで開いてこのコマンドで変更するのですね。
調べてみます。
引用返信 編集キー/
■54706 / inTopicNo.5)  Re[2]: C#でAccess2007のパスワードを変更
□投稿者/ 天野 (3回)-(2010/10/29(Fri) 15:15:19)
No54697 (魔界の仮面弁士 さん) に返信
> ■No54689 (天野 さん) に返信
>>mdbファイルのパスワードを変更することはCompactDatabase(OldDb, NewDb);で今まで可能だったのですが、
>>新しいファイル形式(accdb)のパスワードをC#から変更する方法が分からなくて困っています。
>
> たとえばこんな感じで。
>
> Microsoft.JET.OLEDB.4.0 でも
> Microsoft.ACE.OLEDB.12.0 でも使えます。
>
>
> OleDbConnectionStringBuilder sb = new OleDbConnectionStringBuilder();
> sb.Provider = "Microsoft.ACE.OLEDB.12.0";
> sb.DataSource = @"C:\db1.accdb";
> sb["Mode"] = "Share Exclusive";
> sb["Jet OLEDB:Database Password"] = oldPassword;
>
> using (OleDbConnection con = new OleDbConnection(sb.ToString()))
> {
> con.Open();
> using (OleDbCommand cmd = con.CreateCommand())
> {
> cmd.CommandText = string.Format(
> "ALTER DATABASE PASSWORD {0} {1}", newPassword, oldPassword);
> cmd.ExecuteNonQuery();
> }
> con.Close();
> }
ヒントというよりほとんど解答をいただいたようでありがとうございます。
問題なく動作しました。
パスワードが未設定のものは出来ないようですね。
それは変更ではなくてセキュリティ設定の追加でしょうからこちらで調べてみます。
本当に助かりました。感謝します。
引用返信 編集キー/
■54708 / inTopicNo.6)  Re[3]: C#でAccess2007のパスワードを変更
□投稿者/ 魔界の仮面弁士 (1900回)-(2010/10/29(Fri) 16:16:22)
No54706 (天野 さん) に返信
> パスワードが未設定のものは出来ないようですね。

パスワードを "NULL" の 4文字にすると、未設定状態となります。


《パスワード無し→パスワード「TEST」》
ALTER DATABASE PASSWORD TEST NULL

《パスワード「TEST」→パスワード解除》
ALTER DATABASE PASSWORD NULL TEST
引用返信 編集キー/
■54712 / inTopicNo.7)  Re[4]: C#でAccess2007のパスワードを変更
□投稿者/ 天野 (4回)-(2010/10/29(Fri) 16:51:18)
No54708 (魔界の仮面弁士 さん) に返信
> ■No54706 (天野 さん) に返信
>>パスワードが未設定のものは出来ないようですね。
>
> パスワードを "NULL" の 4文字にすると、未設定状態となります。
>
>
> 《パスワード無し→パスワード「TEST」》
> ALTER DATABASE PASSWORD TEST NULL
>
> 《パスワード「TEST」→パスワード解除》
> ALTER DATABASE PASSWORD NULL TEST
(魔界の仮面弁士 さん)
ありがとうございます。これですべての処理ができることが確認できました。
解決済みとさせていただきます。
お世話になりました。感謝です。

解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -