-1

行数の少ないテーブルがあります。これらの行は、アプリケーションを介してのみ変更する必要があります。つまり、クライアント (HeidiSQL など) を使用して手動で編集できないようにする必要があります。それを防ぐことは可能ですか?

私は次のことができます:

  • データを暗号化する
  • 接続文字列を暗号化する
  • ハッシュコードを使用

しかし、知りたいのですが、DBのデータを手動で編集することを防ぐことは可能ですか?

これらのタイプの機能を提供する DB ベンダー (Oracle、SQL、MySQL) はありますか?

4

2 に答える 2

4

データベースにユーザー権限を設定できます。これは、あなたが言及したすべての DBmanagers で可能です。

例: この場合、3 つのユーザー権限タイプを作成します。

  1. 読み取り/書き込み権限を持つユーザー (アプリケーション用)
  2. 閲覧権限のあるユーザー(一般ユーザー向け)
  3. 読み取り/書き込み + DBOWNER 権限を持つ管理者ユーザー (トラブルシューティング、列とテーブルの変更/追加のため...)
于 2013-07-30T12:52:59.557 に答える
0

ログオン後のトリガーを使用して、クライアントを検出し、例外を発生させることができます。

create or replace trigger prevent_sqldeveloper
 after logon on database
declare
  v_program varchar2(48);
  v_sid     number;
  v_serial# number;
begin
  select sid, serial#, program into v_sid, v_serial#, v_program
    from v$session where sid=sys_context('userenv', 'sid');
  if (v_program like 'SQL Developer%') then
    raise_application_error(-20001,
      'You''re not allowed to connect from SQL*Developer');
  end if;
end prevent_sqldeveloper;
/

よろしく

于 2013-07-30T13:56:10.813 に答える