Skip to main content

Azure SQL - Useful queries

While working with Azure SQL using SQL server management studio (SSMS), most of the feature which we used to get through SSMS GUI while connecting with OnPre/IaaS SQL-Server, is not available (e.g.: get the user's role assignment, create user/role ..)

Here are a few useful T-SQL queries:

To create a role

Create Role

IF DATABASE_PRINCIPAL_ID('<<your-role-name>>') IS NULL
BEGIN
  -- Add Role here
  CREATE ROLE [<<your-role-name>>];
END
    



To create a user

Create User if not exists [<<your-user-name>>]

IF NOT EXISTS (SELECT  [name]   
			FROM    
			sys.database_principals    
			WHERE   [name] = '<<your-user-name>>'	)
BEGIN
   CREATE USER [<>] FROM  EXTERNAL PROVIDER ;
END
  


Get user role & grant permission summary

Role & grant permission summary:


SELECT DISTINCT pr.principal_id, pr.name, pr.type_desc, 
    pr.authentication_type_desc, pe.state_desc, pe.permission_name
FROM sys.database_principals AS pr
JOIN sys.database_permissions AS pe
    ON pe.grantee_principal_id = pr.principal_id;

--Role sumamry
SELECT 
	dp_role.name as db_role_name,
	dp_member.name as db_member_name
FROM sys.database_role_members as drs	       
	LEFT JOIN sys.database_principals as dp_role
ON drs.role_principal_id = dp_role.principal_id
	LEFT JOIN sys.database_principals as dp_member
ON drs.member_principal_id = dp_member.principal_id
WHERE dp_member.name = N'<<your-user-name>>'
Order by 1



To get the object's dependencies

--Generally used sp_depends

sp_depends '<your-schema>.<our-sp-name>'
-- 1st Result: Object on which it depends
-- 2nd Result: Object which depends on this

-- Object on which this sp depnds
SELECT
        referenced_schema_name,
        referenced_entity_name,
        referenced_minor_name,
        referenced_minor_id,
        referenced_class_desc,
        is_caller_dependent,
        is_ambiguous
FROM
	sys.dm_sql_referenced_entities ('<your-schema>.<our-sp-name>',
		'OBJECT')

-- Object which depends on this sp
SELECT referencing_schema_name, 
	referencing_entity_name, 
	referencing_id, 
	referencing_class_desc, 
	is_caller_dependent  
FROM sys.dm_sql_referencing_entities ('<your-schema>.<our-sp-name>', 
		'OBJECT');  
  

Comments

Popular posts from this blog

EFCore - Collate function

Search in SQL server query is generally case insensitive (by default or based on database level collation). Suppose we have an employees table with a row having first-name column value as "My-First-Name", so if we want to do the case-sensitive search we have to explicitly use the related collate: In EF 5 (currently in Release Candidate version [RC.2.20475.6]) Collate function got introduced which helps us to use our specific collation based search.  C# with EF5 code sample: var employeeCaseSensitiveSearch = _dbContext.Employees .Where(x => EF.Functions.Collate(x.FirstName, "Latin1_General_CS_AS") == "my-first-name") .FirstOrDefault(); A related database query will be something like this: T-SQL: Case sensitive search (use specific collation e.g.: Latin1_General_CS_AS) SELECT * FROM dbo.Employees AS e WHERE e.FirstName Collate Latin1_General_CS_AS = 'my-first-name' Some of the useful CSharp function which g...

How to install Zen-coding plugin

As a web-developer, irrespective of the technologies (java, c-sharp, python, php e.t.c.…), we used to write CSS code to make our web-pages looks good if not at least we’re involved in write html codes. What if there is some tool to whom you give some instruction and that tool generates a good, well formatted html tags for you. These kind of coding is possible and known as “ Zen coding ” and there are lots of plug-in available from different vendors. We’re going to  discuss the steps to install this “zen-coding” plugin for “visual studio, eclipse, sublime-text & notepad++ in next few lines. Follow the below steps to install "zen-coding" plugin based on your editor.  Steps to install zen-coding plugin for (visual studio, eclipse, sublime-text,notepad++) -- -- For Visual Studio 1. Go to "Tools" -> "Extensions and Updates" 2. It'll open the "Extensions and Updates windows"    Select online form Left hand menu items ent...

EFCore - Scaffold-DbContext how to use

EFCore versions, we don't have GUI to manage the DB-entities & dbContext like we used to have with EF6 (or EF5/4 version). With EFCore we've the Scaffold-DbContext command which helps us to create entities & DB context from our DB-objects.  Let's see how to use Scaffold-DbContext: Assume we're connecting with SQL Server so after creating a sample project you'll have to install EFCore related libraries as mentioned below.  Install entity-framework-core for SQL Server, at this time 3.1.9 is the latest stable version   Microsoft.EntityFrameworkcore   Microsoft.EntityFrameworkCore.SqlServer  To use Scaffold-DbContext, following two NuGet packages are required Microsoft.EntityFrameworkCore.Tools  Microsoft.EntityFrameworkCore.Design Let's say we've two DB tables (e.g. dbo.Employees & dbo.Users )  Now let's see how to use Scaffold-DbContext to create c-...