如何拒绝DML和DDL查询?

时间:2018-09-05 13:13:28

标签: java oracle jdbc oracle12c executequery

我同意应该调整数据库用户权限以防止他运行DML或DDL查询,但是我正在尝试从客户端执行类似的操作。 JDBC端。

我下载了here的Oracle驱动程序。

当驱动程序及其配套的JAR位于类路径中时,我运行了以下测试代码:

Connection connection = DriverManager.getConnection(url, username, password);
connection.setAutoCommit(false);
// connection.setReadOnly(true); // Doesn't help

Statement statement = connection.createStatement();
statement.executeQuery("ALTER TABLE GELBANA_TEST.TABLE1 ADD HQ varchar2(40) DEFAULT 'NY'");

connection.rollBack();

但是该列已添加到表中!

我也可以删除该列。 这是否足以阻止用户运行DML或DDL查询?我需要阻止他对数据库进行任何更改。应该只允许他选择数据。我检查了连接URL参数中是否有可能拒绝此类查询的内容,但没有发现任何问题。

0 个答案:

没有答案