了解しました。これは、SELECT権限が拒否されたエラーと、「テーブルに選択権限を付与する必要があります...」というすべての応答を確認するのが難しいことを考えると、特に注意が必要です。ただし、いくつかのアカウントで試してみましたが、そのうちの1つにはdb所有者権限があり、SELECTが機能することを実際に確認できます。
サーバー自体は2008R2で、2つのDBがあります。1つはSQL2000互換モードで実行されており、MFCを使用してそのデータベースに接続すると正常に機能します。
2つ目は2008互換モードで、ログインに使用するユーザーやアクセスしようとするテーブルに関係なく、「オブジェクト'TABLE'、データベース'db'、スキーマ'dbo'でSELECT権限が拒否されました。カーソルが宣言されていません」
使用している接続文字列は次のとおりです。
m_TABLENAME.OpenEx(_T("Driver={SQL Server};Server=0.0.0.0\\instance;Database=db;User=user;Password=password;"), CDatabase::noOdbcDialog)
これはVisualStudio2010を使用しており、開発ステーションはWindows XPですが、実行可能ファイルもWin7マシンにコピーし、同じエラーを受け取りました。