How to audit into different database (Hibernate/Envers)? - database

I use Hibernate Envers to audit dataBase Change.
How to audit(Store) Hibernate Envers Audit Table into different DataBase?

You want to take a look at the following configuration parameters
org.hibernate.envers.default_schema
org.hibernate.envers.default_catalog
Depending on whether your data uses schemas or catalogs, you'll want to configure one of these in order to influence where the audit schema objects should be stored. These settings mirror the Hibernate ORM equivalent settings org.hibernate.default_schema and org.hibernate.default_catalog but is limited to the Envers audit schema objects only.

Related

Are Flyway schemas merely informational or do they affect function?

I have a SQL Server database that uses schemas to logically group objects; there are ten schemas in the database.
If I baseline my database and create the schema history table in the “foo” schema, will Flyway apply a migration from the migration folder that operates on an object in the “bar” schema?
Do I need one folder of migration scripts for each schema in the database? The documentation explains how to specify schemas on the command line but doesn’t make it clear as to why I must.
The list of schemas on the command line has two effects:
the first named schema is where the history table goes
the named schemas are the ones that are cleaned by flyway clean
(Note - in 6.1 the command line defaultSchema parameter was introduced to separate these usages)
Migrations can refer to any schema in the database that you have access to - indeed, some objects may exist in one schema but depend on objects in another. If you're happy with the history table to go in dbo, and want to control the whole database with Flyway, just don't set these parameters. A folder of scripts per schema may help you with maintaining them but it is not necessary.

How do I use a schema not based on the connection for database diff feature?

I want to run the SQL Developer database diff feature on schemas different than the schema associated with the SQL Developer connection (my userid).
I log in with my userid but want to use one of the production schema for the comparison. The DBAs control the credentials for the production schemas; my userid can see the production schema objects. We have multiple production databases and want to check for difference in the objects' DDL across the various production schemas.
I tried alter session set current_schema = prod_schema;.
This did not work and the diff report is based on objects under my userid ( I have no objects under my userid in production).
I use the GUI for the "diff wizard" in SQL Developer. No code.
Desired results would list the differences for the production schemas.
Actual results are 0 results since my userid in the production database does not have any objects.
login as SYSTEM (or some other user) for source
On the Objects type screen, select 'Tables'
On the SELECT objects dialog, navigate to the schema where you want to do the compare
Move ALL of the tables over for schema HR
So instead of comparing SYSTEM schema to the target, only those 7 or so tables in HR will be compared to schema connection in the target.
If you don't want to use the schema attached to the target connection, you can use this option
If you say 'Maintain' then the schema attached to the object in the source is used to identify the schema to look in to compare the objects in the destination.
I talk about this more here.
With Jeff's reply, I see that for the SQL Developer Database Diff, in the step 3 of 4 screen dialog, need to select the "More..." option to enable the schema selector list box.
I am using SQL Developer v 18.3.0.277 on Oracle 11r2.

Prevent docrine from updating schema on one database

I have a Symfony project using a MYSQL database. I setup a second entity manager which accesses a SQL Server database. I'd like the ability for Doctrine to read and write to both databases, which it can do now. But I'd like to prevent Doctrine from updating the database schema, if I were to make a change like that by myself.
Doctrine should not be able to add tables, remove columns, or change the name of columns in the SQL Server database. Doing so would break the legacy application that uses this database.
Is there some setting I can use to make sure the database schema won't change?

How to write an audit trail for a table

I am using vb5 and sybase db. I have different roles of people ( with active directory groups), change the tables. I want to write an audit trail (audit table) for this table, to see...all those who changed with time stamp). How to acheive this?
Triggers will work, but depending on the level of granularity and security you need, you may also want to look at using the auditing functionality included in Sybase ASE.
Here is the information on the built in auditing options:
Sybase ASE System Admin Guide: Security Administration - Auditing
Sybase ASE System Admin Guide: Auditing
Try the following:
Create a new table with _log (by copying the original table) with an
extra column called audit and force inserts/updates into the table
with a trigger or by writing an audit procedure. We applied the same
logic to dozens of tables in my last company and it served the
purpose.

schema in sql server 2008

what is the difference between creating ordinary tables using 'dbo' and creating tables using schemas.How this schema works & supports the tables
A schema is just a container for DB objects - tables, views etc. It allows you to structure a very large database solution you might have. As a sample, have a look at the newer AdventureWorks sample databases - they have a number of schemata included, like "HumanResources" and so forth.
A schema can be a security boundary, e.g. you can give or deny certain users access to a schema as a whole. A schema can also be used to keep tables with the same name apart, e.g. you could create a "user schema" for each user of your application, and have a "Settings" table in each of them, holding that user's settings, e.g. "Bob.Settings", "Mary.Settings" etc.
In my experience, schemata are not used very often in SQL Server. It's a way to organize your database objects into containers, but unless you have a huge amount of database objects, it's probably something you won't really use much.
dbo is a schema.
See if this helps.
Schema seems to be a way of categorizing objects (tables/stored procs/views etc).
Think of it as a bucket to organize related objects based on functionality.
I am not sure, how logged in SQL user is tied to a specific schema though.

Resources