Console
Console copied to clipboard
SWDP package does not work with security database
Expected Behavior
When deploying Sitecore.PowerShell.Extensions-6.2.scwdp.zip and having a separate security database extracted from core database, the deployment should finish without error and deploy to correct databases.
scwdp package should accept connection string to core and security database.
Actual Behavior
When deploying package we get error that aspnet tables are not present in the database.
Error SQL72014: .Net SqlClient Data Provider: Msg 208, Level 16, State 1, Line 2 Invalid object name 'aspnet_Applications'.
Steps to Reproduce the Problem
Sitecore 10.1.1 and SPE 6.2
Deploy SPE swdp package on top of vanilla installation. Vanilla installation is configured to use security database and the core database does not contain any aspnet tables. https://doc.sitecore.com/en/developers/92/platform-administration-and-architecture/walkthrough--moving-security-data-to-a-separate-database.html
Which server role are you could figuring the security database? Is this happening with standalone and/or content management?
With Standalone. I have not tested other roles yet, however I think it will be the same. Package contains core.dacpac file that adds roles to the aspnet tables, but the tables are not present in core as we moved them to security database.
Is the solution to the problem as simple as add the connection string to core and then remove after installation?
I've certainly not tested an installation where the security tables are in a separate database. Have you idenfitied what changes are made to the aspnet_* tables?
Inside the core.dacpac there is postdeploy.sql file and that file is inserting items to the core database, but it also inserts roles like sitecore\PowerShell Extensions Remoting and sitecore\PowerShellExtensionsAPI into the aspnet_Roles table (which does not exist).
Ideally, that part should be extracted into security.dacpac and the package should accept Security Connection String.
I guess the .swcdp package is generated using the Sitecore Azure Toolkit. Not sure if SAT supports a security database tbh.
Do you have any recommendations on "how" I could make this change? I have no problem creating this if it's reasonable to create.
I know how to add Security Connection Strings parameter and security.dacpac to the package. This can be done with SAT.
I'm not sure how to extract that SQL script from core.dacpac to security.dacpac though. I will think about it.
@bartlomiejmucha Now that SPE releases a version using IAR, should we consider this no longer an issue?
@michaellwest there is a chance it will work now. Just need to set security connection string instead of core one. By quickly looking at postdeployment.sql script in core.dacpac there is only one place I'm not sure about. Inside the script there is base64_encode sql function dropped and recreated. I'm not sure if this function should go to core or security database.