我必须设计一个工具,该工具具有文本区域,用户可以在其中输入查询并显示提交结果.我的要求是这样一种方式,它应该只接受选择查询,但不接受更新,插入,删除.如果是选择结果应该显示,否则应该抛出错误.我已尝试如下将数据库连接设为只读.
Connection.setReadOnly(true),这是不推荐的,它抛出一个错误.
WebSphere java.sql.Connection实现不支持'setReadOnly'.
有人可以帮我获取数据库的只读连接,或者是否需要进行任何设计更改
一个常见的概念是仅向DB-User提供所需的授权.在您的情况下,应用程序可以使用特定于应用程序的用户在允许的表/视图上使用select-grants.
澄清一些误解:我在谈论你的JDBC-Connection使用的用户.
您可以通过以下方式创建只读用户:
SQL> create user read_only identified by read_only;
User created.
SQL> grant create session, select any table, select any dictionary to read_only;
Grant succeeded.
SQL> conn read_only@pdborcl/read_only;
Connected.
SQL> create table t(col number);
create table t(col number)
*
ERROR at line 1:
ORA-01031: insufficient privileges
SQL> desc scott.emp;
Name Null? Type
----------------------------------------- -------- ----------------------------
EMPNO NOT NULL NUMBER(4)
ENAME VARCHAR2(10)
JOB VARCHAR2(9)
MGR NUMBER(4)
HIREDATE DATE
SAL NUMBER(7,2)
COMM NUMBER(7,2)
DEPTNO NUMBER(2)
SQL> select count(*) from scott.emp;
COUNT(*)
----------
14
SQL> update scott.emp set ename='LALIT';
update scott.emp set ename='LALIT'
*
ERROR at line 1:
ORA-01031: insufficient privileges
SQL> insert into scott.emp(ename) values('LALIT');
insert into scott.emp(ename) values('LALIT')
*
ERROR at line 1:
ORA-01031: insufficient privileges
SQL>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1864 次 |
| 最近记录: |