How to check if a query (CRUD) was made on a database I'm sorry for the title but I have a problem which I can't sum up in a sentence.
I have a database with 100 tables and probably a thousand columns. Now, every time something changes in the database, for example:

New table is created
New column is created (Insert)
Column is updated (Update)
Column is deleted (Deleted)
And a column is read (Read)

I would like to know.
From what I have read there are 3 options but I have an issue with all three:

SQL Profiler (soon to be obsolete)
Extended Events (too complex for me)
Open MSSQL query field and go crazy

For now, I am trying to go with the third. I am hoping to use sys.object or sys.dm_db_index_usage_stats and any other table to get what I want.
So, my question is: Do you think there is a better alternative or not?
I would have thought that the Audit functionality would meet your requirements.
If you search for SQL Server Audit you'll get lots of hits - it is very configurable but too big to describe fully here.
Have you looked at that ?