Recently we had a requirement to check who had a certain privilege across all of our Dynamics environments. The privilege in question was ‘Delete Change History‘ for Audit History records.
The ‘Delete Change History‘ role is found under Miscellaneous privileges, and the internal name is prvDeleteRecordChangeHistory. A full list of these can also be found on Microsoft Learn.
We need to find all of the Security Roles where this was enabled, and then the users who had this role. The interface to roles and privileges works but does not allow the searching we require.
SQL 4 CDS comes to the rescue yet again. I won’t go over the install procedure, but basically go to XrmToolBox, then download the SQL 4 CDS plugin.
Once it’s installed and you’ve connected to your Dynamics environment you can query the appropriate tables. There are several tables that hold the required information: • systemuser • role • privilege • roleprivileges
See examples below
Show all the users who have a specific privelege
SELECT
systemuser.fullname AS UserName,
systemuser.domainname,
role.name AS RoleName,
privilege.name AS PrivilegeName,
privilege.accessright
FROM
systemuserroles
JOIN
systemuser ON systemuserroles.systemuserid = systemuser.systemuserid
JOIN
role ON systemuserroles.roleid = role.roleid
JOIN
roleprivileges ON role.roleid = roleprivileges.roleid
JOIN
privilege ON roleprivileges.privilegeid = privilege.privilegeid
WHERE
privilege.name = 'prvDeleteRecordChangeHistory'
ORDER BY
systemuser.fullname, role.name
Users who have System Administrator role
SELECT
systemuser.fullname AS UserName,
systemuser.domainname,
role.name AS RoleName,
accessmodename,*
FROM
systemuserroles
JOIN
systemuser ON systemuserroles.systemuserid = systemuser.systemuserid
JOIN
role ON systemuserroles.roleid = role.roleid
WHERE
role.name = 'System Administrator' and azurestatename = 'Exists' and accessmodename <> 'Non-interactive' and isdisabled=0
ORDER BY
systemuser.fullname, role.name
The Microsoft Dynamics Advanced Settings pages have been around for as long as I can remember – probably since Dynamics CRM 2011.
It’s been marked as deprecated for a number of years – but not totally gone yet. It used to be accessible from the top-right cog, and then ‘Advanced Settings’, but since Release Wave 2 this now takes you to the Power Platform Environment Settings
The issue is that some functionality isn’t available in the updated interface.
A prime example I found recently, is that viewing Processes in a Solution differs from the old and new interface. The new interface (make.powerapps.com) shows Processes as below:
Which looks fine until you have many workflows and want to see the Primary Entity of a workflow.
See the older interface:
So why has this been removed from the new interface. Presumably there’s a reason for this.
Anyway, for now, we can still access the old interface by using the below URL
Recently, we wanted to carry out a Dynamics license clean-up exercise, and remove any users who had not used the system for a few months. We wanted to create an export with enabled users, and when they last logged in to Dynamics.
Install the tool ‘SQL 4 CDS‘, and connect to your Dynamics environment
You should now have something similar to the below
Get Active Users
Paste in the below SQL, which returns all active interactive users, excluding internal user accounts. Press F5 to execute the query.
SELECT systemuserid, domainname, fullname FROM systemuser
WHERE isdisabled = 0 AND accessmode = 0
Select the results grid, press CTRL + A to select all, then right-click on the grid, and click ‘Copy‘
In the spreadsheet, in the tab ‘Active Users‘ paste the results into cell A2
Currently the column ‘Last Logged In” will show as #N/A. This is because we have not yet completed the process.
Get Last Logged In Values
Select all of column E by click on the header
Press Ctrl + C to copy these values
In XrmToolBox clear the current SQL, and then click in the SQL area, and then press CTRL + V to paste in the new SQL. Press F5 to execute the query. This may take several minutes to run. You should see similar to below:
Select the results grid, press CTRL + A to select all, then right-click on the grid, and click ‘Copy‘.
In the spreadsheet, in the tab ‘Login SQL Output‘ paste the results into cell A2
Final Results
In the spreadsheet, the tab ‘Active Users‘ will now show the users, and when they last logged in:
I’ve recently starting using Notion for some of my digital notes. As a long time Evernote user I find the notes in Notion easier to visualise as they are stored in a hierarchical format. Evernote uses a tagging system which is more flexible but can be quite confusing.
One thing I don’t like about Notion is that the colour options for highlighting text only have pastel/neutral colours
Last year Trello changed their colours from “normal” colours to more neutral colours – which caused a bit of backlash with their users.
Anyway, in Notion there is a way to add a highlight with any colour, using the equation feature. The process is, to add the below text first
\colorbox{#55FF55}{\color{#000000} \text{TEXT} }
Then right click on it, and choose “Create Equation”
In the next dialog, edit the TEXT to whatever you want, then select Done
And there you have it – nicely visible highlighted text.
You can edit the value 55FF55 after \colorbox to get different colours. Some options are:
Yellow – FFFF00 Red – FFAAAA Blue – 88FFFF
Also, you can choose your own colour using htmlcolourcodes.com. Just select your colour and copy the HEX value.
The downside with this method is that the whole line is highlighted, so you can’t have mixed text and highlighted text on the same line.
I think Notion will be updated at some point to include brighter highlight colours, but this seems to be the only option for now.