I had same issue on 8.0.21 NDB Cluster. I was looking at the error log and trying to figure out what is wrong, and I saw this
NDB: Query 'CREATE USER IF NOT EXISTS 'admin'@'localhost'' failed, error: 1819: Your password does not satisfy the current policy requirements
NDB: Query 'REVOKE ALL ON *.* FROM 'admin'@'localhost'' failed, error: 1269: Can't revoke ...
You can use the built-in database role db_datareader
EXEC sp_addrolemember N'db_datareader', N'<MYUSER>'
or you can create your own database role
CREATE ROLE [<MYROLE>]
GRANT SELECT ON SCHEMA::[dbo] TO <MYROLE>
EXEC sp_addrolemember N'<MYROLE>', N'<MYUSER>'
The MySQL 5.7 GRANT Syntax Documentation says something interesting about wildcards
Under the subheading Object Quoting Guidelines, Paragraph 1 says:
Several objects within GRANT statements are subject to quoting, although quoting is optional in many cases: Account, database, table, column, and routine names. For example, if a user_name or host_name value ...
When non sysadmins execute the SP everything works except for adding
users to the database roles with error: Cannot alter the role
'db_datareader', because it does not exist or you do not have
According to the ALTER ROLE documentation:
Additionally, to change the membership in a fixed database role you
Membership in the db_owner fixed ...
One thing you could try is to create stored procedure that would select from a View
When creating stored procedure, use EXECUTE AS clause and set it to a Windows-authenticated account (grant all necessary permissions to this account, required to read from I:\Folder)
Grant execute on procedure to SBA_USER
This way when SBA_USER executes procedure, procedure ...
Can anyone confirm why this is required and what it's function is within the SQL Engine
This privilege when granted to user account will give ability to the account to adjust maximum memory that other process can use. See the official document
This privilege determines who can change the maximum memory that can be consumed by a process. This privilege is ...