ЗАЯВЛЕНИЯ об отзыве DB2 в Hibernate - PullRequest
0 голосов
/ 21 марта 2012

У меня есть базы данных DB2, сохраненные с Hibernate.Я хотел бы отозвать разрешения DROP TABLE для всех таблиц во всех базах данных для конкретного «пользователя».Таким образом, обычный пользователь не может УДАЛИТЬ ТАБЛИЦЫ ни в одной базе данных DB2.У меня также есть базы данных mySQL, но мне все равно, делать ли в них DROP STATEMENT.

Есть ли возможность сделать это с помощью тега в components.xml (hibernate), или это нужно делать непосредственно в DB2?(и как? - Какой сценарий sql будет отзывать DROP STATEMENT для конкретного пользователя на всех схемах ВСЕХ DB2? Чтобы отозвать CREATE STAT, я нашел это:

... но какой STAT отзывает DROP TABLE?)

=> components.xml:

...

<!-- 1st databse -->
<key>hibernate.connection.driver_class</key><value>com.ibm.db2.jcc.DB2Driver</value>
<key>hibernate.connection.username</key><value>user</value>
<key>hibernate.connection.password</key><value>password</value>
<key>hibernate.connection.url</key><value>jdbc:db2://server:50000/DATABASE1</value>
<key>hibernate.dialect</key><value>org.hibernate.dialect.DB2400Dialect</value>
<key>hibernate.default_schema</key><value>SCHEMA_NAME</value>

<!-- 2nd databse -->
<key>hibernate.connection.driver_class</key><value>com.ibm.db2.jcc.DB2Driver</value>
<key>hibernate.connection.username</key><value>user</value>
<key>hibernate.connection.password</key><value>password</value>
<key>hibernate.connection.url</key><value>jdbc:db2://server:50000/DATABASE2</value>
<key>hibernate.dialect</key><value>org.hibernate.dialect.DB2400Dialect</value>
<key>hibernate.default_schema</key><value>SCHEMA_NAME</value>

...

Ответы [ 2 ]

0 голосов
/ 23 марта 2012

Если вы посмотрите документацию для оператора DROP , вы увидите, что у вашего ID должны быть полномочия CONTROL для таблицы, полномочия DROPIN для схемы или привилегии более высокого уровня, такие как DBADM или SYSADM .

Так что, пока у пользователя нет этих привилегий, вы защищены (хотя, как утверждает @Aaron Sheffey, маловероятно, что Hibernate будет выполнять операторы DROP TABLE.).

0 голосов
/ 21 марта 2012

Если обновление DDL не отражено в вашей структуре сущностей, маловероятно, что Hibernate сможет это сделать.Даже если бы это было возможно, я предполагаю, что вашим администраторам баз данных не понравится использование Hibernate для управления схемой БД.Создайте сценарий DDL и используйте его для миграции среды, а администраторы баз данных запустят его под соответствующей учетной записью.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...