The documentation lists several "SENSITIVE" groups (e.g., SENSITIVE_BATCH_COMPLETED_GROUP) that are new for SQL 2019. I both want and need it. However, I can't find these to select. If I try to use the SENSITIVE groups in script, I get a syntax error. I'm at 15.0.4123 (CU 10).
https://learn.microsoft.com/en-us/sql/relational-databases/security/auditing/sql-server-audit-action-groups-and-actions?view=sql-server-ver15
Do I need to add a feature or install a feature pack to have access to this audit group?
Related
Attempting to configure the "sensitive" versions of the batch completed groups (SENSITIVE_BATCH_STARTED_GROUP/SENSITIVE_BATCH_COMPLETED_GROUP) that are listed in the doc for SQL 2019
https://learn.microsoft.com/en-us/sql/relational-databases/security/auditing/sql-server-audit-action-groups-and-actions?view=sql-server-ver15
I have set up all the data classifications and now need to set up the associated auditing.
Issue is I can't select them in the UI (they're not in the dropdown list) nor can I use them in T-SQL or PowerShell scripts either.
E.g. Whilst using BATCH_STARTED_GROUP works just fine, replacing just those characters in the same script with SENSITIVE_BATCH_STARTED_GROUP produces a syntax error but according to the doc it should be fine.
Am I missing a configuration option or something similar ?
Running SQL 2019 (15.0.4223.1)
We would like to use a SQL Server table as a source for all connection manager values within SSIS. We would prefer to do this at the project level since many of our connections are already at the project level. We would like to be able to easily switch which environments we are looking at based on an input value when the project opens. The reason we need to do this is because when creating our projects in dev we use different connections than when deploying them to prod, and we have hundreds of different connections being used. We don't want to have to switch anything in SSIS or in SQL Server Agent or the SSIS Catalog. We would love for these to be strictly maintained within a SQL Server table.
How can we have these values fed from a SQL Server table into variables that feed the values or parameters? To reiterate, the end product would have 1 single table in SQL Server that contains all columns like [ConnectionString], [InitialCatalog], [UserName], [UserName], [Password], [HeaderRowsToSkip] etc. We would parameterize all connection managers that would have their values fed from this table. We need direction on how to accomplish this.
I would like to be able to contain both PROD and DEV in the same table with an [Environment] column that has a value of 'Dev' or 'Prod', and if possible we would like to have a prompt open when the Project opens in SSIS that asks which [Environment] we would like (A fillable prompt) that would in turn filter the results from the SQL Table to use either Dev or Prod based on what we enter.
If 2) is not possible, we would just use separate tables that could be switched in the connect manager manually based on when we are developing or deploying.
It sounds exactly the same as what "Environment Variables in SSIS Catalog" does!
The "Environment" in SSIS Catalog works like a configuration file for parameters, in your case, you can create Prod/Dev Environment, and map the variables in it to the Project Level parameters, which are mapped to Project Level Connection Managers.
Reference:
Setup Environment Variables in SQL Server Integration Services
Creating a Robust SSIS Development Environment using the SSIS Catalog
Apart from the discussion about how much securely is (a password inside a SQL Server Table, really?), I had made this kind of request using a special combination of PowerShell and in some cases getting info from Servers from SQL Table, for this, you can use a SQL Script Task Editor:
SELECT instanceName,databaseName,DataSource
FROM meta.InfoSSIS
WHERE environmentName = ? --Input parameter corresponding to DEV, INT or PROD
The output of this Query should be feeding the object, for instance, User: DatabaseList which is basically a DataType: Object and which store the info for SSIS instance, DB name, and DataSource. Internally you can have a ForEach Loop object which allows to interact with the DatabaseList object and work on it.
I was wondering if it were possible to push a SQL Server login via a chef recipe, without going through something like PowerShell. We already push an RBAC file to maintain users on a DB on creation time, but I would like to be able to also push logins for SQL Server via chef. I see that there's a sql_server cookbook, but it seems like it's mainly for installing/configuring SQL Servers, and there doesn't seem to be an option to push a specific login with a log in name and hash.
As you noted, this isn't a feature of the sql_server cookbook. At it's heart, Chef is just running commands and manipulating files so if you know how to do whatever is required to create a SQL Server user from the command line, you can write a Chef recipe for it. Check out the execute and powershell_script resources as a starting point. There is also some integration with the Microsoft DSC system which might already have resource types for this.
I'm using SSMS (from SQL Server 2014 Developer edition) to work with SQL Azure. It's running on Windows 10. I have a number of databases set up on Azure, and have always used SSMS to work with them. I have also installed devart's dbForge Studio for SQL and use that from time to time.
I've now hit a very weird problem. I was about to create a view, and clicked the + next to a table to expand the nodes below. Then I clicked the + next to columns and got a strange error as follows:
TITLE: Microsoft SQL Server Management Studio
Failed to retrieve data for this request. (Microsoft.SqlServer.Management.Sdk.Sfc)
For help, click: http://go.microsoft.com/fwlink?ProdName=Microsoft%20SQL%20Server&LinkId=20476
ADDITIONAL INFORMATION:
unknown property IsMemoryOptimized (Microsoft.SqlServer.Management.Sdk.Sfc)
Having dismissed this error, everything seemed fine, however, until I noticed that I no longer have a Columns node under that table. Or indeed any table (see screenshot).
I tried the following trouble-shooting steps:
Restart SSMS. No change
Restart the PC. No change
Use the "Repair" option in the SQL Server Installation Center to repair the Management tools. No change
Then I tried connecting to another database entirely, and I can see columns again! But when I connect back to this one, no columns.
To be clear, the columns ARE there, I can use them in SELECT statements, and I can use Script table as --> Create and SSMS creates a script including all the column names.
I can also see the columns if I use DBForge instead of SSMS.
Anyone ever come across this? It's a real mystery to me, so I'm hoping someone here can help. Incidentally, I did follow the link in the error message above to see if there's more information, but no luck.
This is a bug in SSMS. Ensure that your SSMS 2014 is updated (https://www.microsoft.com/en-us/download/details.aspx?id=46694) or, even better, use the latest version of SSMS (http://blogs.msdn.com/b/sqlreleaseservices/archive/2015/09/01/announcing-sql-server-management-studio-august-2015-release.aspx).
I'm running through the SQL Server 2014 install wizard, stopping before I get to the final step and then trying to use the Configuration.inf file to do "silentInstalls" on multiple servers. But, in the wizard I set the services (Ex: SQL Agent, ...) to a domain user, which requires a password. That password information is not included in the Configuration.inf file, so the unattended install obviously fails.
Questions:
I have to use a domain user if I am going to be using replication and other resources that require the SQL Server to communicate with each other, right?
How do I include the password for the domain service user in the Config.inf file?
Thanks,
Chris
I don't know what else you're using, but you don't need to use a domain user for replication. You can use a SQL account if you'd like (the documentation says so).
For the password issue, take a look at the list of parameters you can pass setup.exe (here). You can mix and match parameters and a config.ini. As such, you can set it up such that all you specify via command line switches is the various passwords you'll need (assuming that the service account is the same between all of your installs).