質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
SQL Server

SQL Serverはマイクロソフトのリレーショナルデータベース管理システムです。データマイニングや多次元解析など、ビジネスインテリジェンスのための機能が備わっています。

Access

Accessはマイクロソフトによるリレーショナルデータベース管理システムです。オブジェクト指向のアプリケーション作成に対応しており、テーブルや編集をはじめ、クエリ生成、入力フォーム作成、レポート作成など一通りの機能を備えています。

Windows Server

Windows Serverとは、Microsoft社のサーバ用オペレーティングシステムの総称です。 企業内ネットワークなどで利用されるサーバ機へ導入することを想定して開発されているため高い安定性があり、 管理機能を提供するソフトウェアが多く含まれています。

Q&A

解決済

3回答

2887閲覧

AccessからDBへの認証情報の保存について

mmmaaa

総合スコア8

SQL Server

SQL Serverはマイクロソフトのリレーショナルデータベース管理システムです。データマイニングや多次元解析など、ビジネスインテリジェンスのための機能が備わっています。

Access

Accessはマイクロソフトによるリレーショナルデータベース管理システムです。オブジェクト指向のアプリケーション作成に対応しており、テーブルや編集をはじめ、クエリ生成、入力フォーム作成、レポート作成など一通りの機能を備えています。

Windows Server

Windows Serverとは、Microsoft社のサーバ用オペレーティングシステムの総称です。 企業内ネットワークなどで利用されるサーバ機へ導入することを想定して開発されているため高い安定性があり、 管理機能を提供するソフトウェアが多く含まれています。

0グッド

0クリップ

投稿2017/08/26 17:29

###前提・実現したいこと

現在、AccessでDBのメンテナンスを行うツールを作成しており、
権限周りの設定で、質問があります。

以下の様に利用するのを理想としています。

・専用のサーバに、一般ユーザでログオン
・ログオンしたユーザが、Accessのファイルを開く
・Access内のVBA等を通して、DBの参照や更新を実施

この時の認証方法として、以下の様にしたいと考えています
・認証のID/PWの入力は行わない
・ログオンしたユーザに、DBに対する権限は付与させない

(Webアプリであれば、WebConfigに認証情報を登録しておき、
その権限でDBにアクセスするイメージと、同様なことをしたいと
考えております。

###発生している問題・エラーメッセージ
現在の対処と、問題点は以下の通りです

1.ODBC の設定で、SQL認証を設定
・外部データの取り込みで、パスワードを保持するをチェックオン
・リンクを確認し、ファイルを保存して閉じる。
・Accessを起動し、テーブル等にアクセス
→ 再接続時に、認証が求められる

2.ODBCの設定で、Windows認証を設定
・外部データの取り込み時に、DBに接続可能なアカウントで起動し、
外部データの取り込みで、パスワードを保持するをチェックオン
(runas で、アカウントを切り替え)
・一般ユーザで、Accessを起動し、テーブル等にアクセス
→ ログオンしている一般ユーザでアクセスできないとエラー

###補足情報(言語/FW/ツール等のバージョンなど)
環境等は以下の通りです

ログオンサーバのOS:Windows servr 2012 R2
Accessのバージョン:Office 2013
SQL Serverのバージョン:2012

お手数おかけいたしますが、
助言等いただけますよう、よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

自己解決

ありがとうございました。

結局、Powershellを使って、別アカウントで起動するようにしました。
(日本語入力ができなくなりましたが)

ベストな手段ではなかったですが、今回はあきらめました。

投稿2017/10/20 11:58

mmmaaa

総合スコア8

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

リンクテーブルは作成しない。
フォームのレコードソースにIN句で接続するSQLをVBAで設定する。
VBAにはパスワードを設定しておく。

DBのパスワードはSQLのIN句に記述しますが、VBAで記述しますので、VBAのパスワードを知らないと見ることはできない。

あるいは、AccessはACCDEファイルしておくとデザインビューで開けないのでコードを見ることができずバスワードも見られない。

環境がないので試してないですが、これでどうでしょうか。

コード例
'フォームの開く時のイベントプロシージャ

Private Sub Form_Open(Cancel As Integer) Me.RecordSource = _ "select * from テーブル名 " & _ "in '' [ODBC;Driver={SQL Server};SERVER=サーバ名;" & _ "Database=データベース名;UID=ログインID;PWD=パスワード]" End Sub

投稿2017/08/27 17:49

hatena19

総合スコア33620

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ODBC接続ではなく、Access内に接続文字列を保持し、ADO接続とすることで回避できると思われますが、コーディングが多くなってしまいますね。
また、Accessファイルを一般ユーザが開くことができるため、(編集権限がないとは言え)接続に必要なパスワードを知ることができてしまいます。

サーバにログインするユーザが、ドメインユーザであれば、SQLServerに読み取り専用の権限を付与し、Windows認証によるDBアクセスを許可する方法が確実ではないかと思います。

または、自社開発せずに外部製品に頼る方法も検討の余地があるかと思います。
一般製品では、Object Browserなどが、読み取り専用のDB管理製品として挙げられます。
開発コスト・メンテナンスコストと相談すると、案外購入したほうが安上がりな場合もありますね。
(なお、システムインテグレータ社の回し者ではありません)

投稿2017/08/27 06:08

hakkun

総合スコア25

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問