Access control to Oracle database - database

I've been told that Oracle database has some utilities to make dynamic data filtering and dynamic data maskering. Since I need this kind of access but I've never used Oracle, I ask if someone can confirm that such utilities exist in Oracle in order to understand if it worth to start using it for my purpose.

What you are looking for is dynamic data filtering and dynamic data masking.
There are three ways you can achieve this:
Oracle's native capability is called Oracle Virtual Private Database (VPD)
Alternatively you can use 3rd party software e.g.
Informatica DDM
Axiomatics Data Access Filter MD (which is where I work)

Related

PHP - different database type (PDO or what)?

I am working in a company that is about to start a web project. However, at this stage we are not sure about the database type. We may even let potential app user decide what database to use. Until than I have to start with something.
So lets imagine I need to consider MySQL(i), MSSQL, SQLite or similar. What approach would be best in order to be able to switch to different database via simple config file update? Is that PDO or what?
Thank you.
Different DBMS systems using different SQL syntax. For example, explore theme of LIMIT in MySQL, PostgreSQL, MS SQL Server. So, you may use abstraction above SQL. Use one of query builders or ORM library. Your choose will depend on architecture of your project.
PDO advantage is being compatible with most database.
If you ever decide to change database type, you won't have to change your code, just the connection.

Multi Operating System DBMS

I am creating a db for my family to use. We use both win & Linux on our network (cannot get her to completely get rid of win yet). What would be a good DBMS to use & create the db with?
edit: I am wanting to improve my db skills in the 3 db classes I had a few yrs ago, 2 ms accsess & 1 sql server. I have been creating tables on paper to make sure I get the relationships right. I was wanting to make it fully functional.
It would be good if you can specify your question:
What do you want to do with the database?
Do you only have one database on a home server / web server or a single instance on each computer?
How much data must the database be able to hold?
I think you can use SQLite or MySQL, depends on your use-case.
Depend on what is your requirement. Do you need simple database with basic UI that people can use right away or full feature database.
For basic stuff you can use LibreOffice's Base, which is like MS Access.
Next up you can use SQLite, and for more features you can use MySQL or PostGreSQL.

Entity Framework, No SQL server, What do I do?

Is there seriously no way of using a shared access non-server driven database file format without having to use an SQL Server? The Entity Framework is great, and it's not until I've completely finished designing my database model, getting SQL Server Compact Edition 4.0 to work with Visual Studio that I find out that it basically cannot be run off a network drive and be used by multiple users. I appreciate I should have done some research!
The only other way as far as I can tell is to have to set up an SQL server, something which I doubt I would be able to do. I'm searching for possible ways to use it with Access databases (which can be shared on a network drive) but this seems either difficult or impossible.
Would I have to go back to typed DataSets or even manually coding the SQL code?
Another alternative is to try using SQL
Install SQL Server express. Access is not supported by EF at all and my experience with file based databases (Access, SQL Server CE) is mostly:
If you need some very small mostly readonly data to persist in database you can use them (good for code tables but in the same time such data can be simply stored in XML).
If you expect some concurrent traffic and often writing into DB + larger data sets their performance and usability drops quickly. They are mostly useful for local storage for single user.
I'm not sure how this relates for example to SQLite. To generate database from model for SQLite you need special T4 template (using correct SQL syntax).
Have you tried SQLite? It has a SQL provider, and as far as I know EF supports any provider. Since it's file-based, that might be a plausible solution. It's also free.

LINQ with existing databases and unknown schema

I'm working on a database heavy project, where the Microsoft SQL databases are very mature (16 or more years-old mature), and an old product uses VB6 and ADO to generate sql which interacts with the database. I've been given the task of porting/re-writing the ancient version with a new .NET version.
I'd love to use LINQ-to-* to ensure easy maintainability, but having tried for the last several weeks I feel like LINQ-to-SQL isn't flexible enough, LINQ-to-Entities has too much overhead, and LINQ-to-Datasets is pointless since I would be just as happy using Ado.Net.
The program operates on two databases at once: one is a database with a very consistent schema containing meta-data, and the other a database which has a varying schema, is tightly coupled to the meta-database, and dictates what information from the meta-database you are interested in at any given time. Furthermore, I need non-LINQ information from both databases (such as system-stored procedures, and system-tables).
Is there any way to use LINQ intelligently here? I'd love the static typing, but if I can't have it I don't want to force my square app into a round framework.
Just an FYI, you can get access system tables (and sys stored procs too?) using LINQ. Here is how:
Create a connection to the server you want.
Right-click the server and choose Change View > Object Type.
You should now see System Tables and User Tables. You should see sysjobs there, and you can easily drag it onto a .dbml surface.
Above was stolen from this post.
The best answer seems to be to use ADO.NET completely. I have the option of using Linq-to-Sql over the metabase and ADO.NET for any other database access, but that would make the code feel too inconsistent for me.

How can my application use both an MS Access database and a SQL Server database at the same time?

What strategies and techniques have you used to produce a data driven application that needs to access multiple diverse data sources? Specifically, Microsoft Access and SQL Server. Ideally, I'd like to make an abstraction layer that hides the physical data source from the application.
Something like the ADO.NET Entity Framework would be ideal, but it doesn't have an MS Access provider. Is there a different framework or technique that supports simultaneous Access and SQL Server connections?
How much work would it be to make an Access provider for the Entity Framework?
I'm pretty sure LLBLGen supports Access (and, of course, it supports MS SQL). It costs money though, but IMHO it's the best OR/M for .NET.
Another approach is to create Linked Servers in SQL Server, perform joins using views in SQL Server and completely hide the fact there are multiple data sources from your application.
As far as I know, there are only two choices:
Multiple connection strings
Single connection string.
In the first scenario, you join any data you need from the disparate sources in the middle tier code. In the second scenario, you access all sources but one indirectly through the one source. For example, you'd retrieve data from Access via a Linked Server in SQL Server.
They each have their advantages and disadvantages. Using a single connection string is certainly simpler to code against in the middle-tier. Ultimately it depends on the need of two sources. If one is simply for logging for example, then two connection strings might be simpler. If joins and such are needed, then using a linked server might be easier depending on the sources. If one of the sources is Access and you are not using Access security, then using a Linked Server can work fine depending scale. If you are using Access security and have different logins that need to access the database, then using a linked server will be a pain.
Look at NHibernate. It has providers for SQL Server and Access (and others).

Resources