Wednesday, March 2, 2022

SQL Server drop orphaned users

 use [master]

go

create proc dbo.sp_Drop_OrphanedUsers

as

begin

 set nocount on

 -- get orphaned users  

 declare @user varchar(max) 

 declare c_orphaned_user cursor for 

  select name

  from sys.database_principals 

  where type in ('G','S','U') 

  and authentication_type<>2 -- Use this filter only if you are running on SQL Server 2012 and major versions and you have "contained databases"

  and [sid] not in ( select [sid] from sys.server_principals where type in ('G','S','U') ) 

  and name not in ('dbo','guest','INFORMATION_SCHEMA','sys','MS_DataCollectorInternalUser')  open c_orphaned_user 

 fetch next from c_orphaned_user into @user

 while(@@FETCH_STATUS=0)

 begin

  -- alter schemas for user 

  declare @schema_name varchar(max) 

  declare c_schema cursor for 

   select name from  sys.schemas where USER_NAME(principal_id)=@user

  open c_schema 

  fetch next from c_schema into @schema_name

  while (@@FETCH_STATUS=0)

  begin

   declare @sql_schema varchar(max)

   select @sql_schema='ALTER AUTHORIZATION ON SCHEMA::['+@schema_name+ '] TO [dbo]'

   print @sql_schema

   exec(@sql_schema)

   fetch next from c_schema into @schema_name

  end

  close c_schema

  deallocate c_schema   

  

  -- alter roles for user 

  declare @dp_name varchar(max) 

  declare c_database_principal cursor for 

   select name from sys.database_principals

   where type='R' and user_name(owning_principal_id)=@user

  open c_database_principal

  fetch next from c_database_principal into @dp_name

  while (@@FETCH_STATUS=0)

  begin

   declare @sql_database_principal  varchar(max)

   select @sql_database_principal ='ALTER AUTHORIZATION ON ROLE::['+@dp_name+ '] TO [dbo]'

   print @sql_database_principal 

   exec(@sql_database_principal )

   fetch next from c_database_principal into @dp_name

  end

  close c_database_principal

  deallocate c_database_principal

    

  -- drop roles for user 

  declare @role_name varchar(max) 

  declare c_role cursor for 

   select dp.name--,USER_NAME(member_principal_id)

   from sys.database_role_members drm

   inner join sys.database_principals dp 

   on dp.principal_id= drm.role_principal_id

   where USER_NAME(member_principal_id)=@user 

  open c_role 

  fetch next from c_role into @role_name

  while (@@FETCH_STATUS=0)

  begin

   declare @sql_role varchar(max)

   select @sql_role='EXEC sp_droprolemember N'''+@role_name+''', N'''+@user+''''

   print @sql_role

   exec (@sql_role)

   fetch next from c_role into @role_name

  end

  close c_role

  deallocate c_role   

      

  -- drop user

  declare @sql_user varchar(max)

  set @sql_user='DROP USER ['+@user +']'

  print @sql_user

  exec (@sql_user)

  fetch next from c_orphaned_user into @user

 end

 close c_orphaned_user

 deallocate c_orphaned_user

 set nocount off

end

go

-- mark stored procedure as a system stored procedure

exec sys.sp_MS_marksystemobject sp_Drop_OrphanedUsers

go


--USE [MyTestDB]

--GO

--EXEC sp_Drop_OrphanedUsers

Thursday, February 24, 2022

Sql server open query sample

 SELECT BOOK_TYPE_CODE, BUSINESS_UNIT, DEPARTMENT, DEPARTMENT_DESCRIPTION, ASSET_NUMBER, ASSET_DESCRIPTION, MAJOR_CATEGORY, PR_NUMBER, SERIAL_NUMBER, TAG_NUMBER, PO_NUMBER, LEGACY_ASSET_NUMBER, CUSTODIAN, DETAILED_LOCATION, EQ_NUMBER, CALIBRATION_DATE, NEXT_CALIBRATION_DATE, COUNT_CYCLE, DATE_PLACED_IN_SERVICE, QUANTITY, COST, ACCUM_DEPRN, NET_BOOK_VALUE, CAPITALIZED_FLAG, Getdate()

from OpenQuery(PART1I,'select * from XXFA.XXFA_COUNT')


Wednesday, January 12, 2022

SQL Server. Kill runaway jobs

 select sja.*

FROM msdb.dbo.sysjobactivity AS sja

INNER JOIN msdb.dbo.sysjobs AS sj ON sja.job_id = sj.job_id

WHERE sja.start_execution_date IS NOT NULL

AND sja.stop_execution_date IS NULL

and sj.name = 'FIN_ICRP_BOM_Generate_QCHART'


kill 35


USE msdb


GO


EXEC dbo.sp_stop_job


N'FIN_ICRP_BOM_Generate_QCHART'


--use this

DECLARE @job_name VARCHAR(2000) = 'FIN_ICRP_BOM_Generate_QCHART'; 

 

DECLARE @job_id uniqueidentifier =

    (SELECT job_id

    FROM msdb.dbo.sysjobs

    WHERE NAME LIKE @job_name); 

 

UPDATE msdb.dbo.sysjobactivity

SET stop_execution_date = GETDATE()

WHERE job_id = @job_id

AND start_execution_date =

    (SELECT MAX(start_execution_date)

    FROM msdb.dbo.sysjobactivity

    WHERE job_id = @job_id

AND run_Requested_date IS NOT NULL 

AND stop_execution_date IS NULL);

 

EXEC sp_stop_job @job_id = @job_id;

Wednesday, December 22, 2021

How to create a native login in azure

 

create login DAV4635 with password='YourPassword';


create user DAV4635 from login DAV4635;


USE AEDIDACATED

EXEC sp_addrolemember N'db_owner', N'DAV4635'

GO

__


-- ADD AD USER



  CREATE USER [dexter.soreta@aei.com] 

FROM EXTERNAL PROVIDER 

WITH DEFAULT_SCHEMA = dbo;  





EXEC sp_addrolemember N'db_datareader', N'dexter.soreta@aei.com'


Monday, December 13, 2021

BARBATOS /u01

 ./wind_ora_25225_20211214011600673492885833.aud

./wind_ora_25236_20211214011601236794820192.aud

[oracle@barbatos adump]$ pwd

/u01/app/oracle/admin/wind/adump

[oracle@barbatos adump]$ find . -name "*.aud" -delete


Wednesday, November 3, 2021

Oracle how to kill sessions by user

 BEGIN

  FOR r IN (select sid,serial# from v$session where username='COMPASS')

  LOOP

      EXECUTE IMMEDIATE 'alter system kill session ''' || r.sid  || ',' 

        || r.serial# || ''' immediate';

  END LOOP;

END;

SQL Server Permissions to view Performance Dashboard

Permissions

On SQL Server, requires VIEW SERVER STATE and ALTER TRACE permissions. On Azure SQL Database, requires the VIEW DATABASE STATE permission in the database.