May 17, 2026, 11:40 PM
This commit is contained in:
@@ -0,0 +1,41 @@
|
||||
--guest users
|
||||
USE master;
|
||||
GO
|
||||
if not exists (select name from sys.databases where name = 'SQLAdmin')
|
||||
create database SQLAdmin
|
||||
go
|
||||
declare @name sysname
|
||||
declare @cmd varchar(4000)
|
||||
DECLARE databases_cursor CURSOR FOR
|
||||
SELECT name FROM sys.databases where state in (0)
|
||||
order by name
|
||||
|
||||
create table #guest_users (
|
||||
database_name sysname, principal_name sysname, permission_name nvarchar(128), state_desc nvarchar(6)
|
||||
)
|
||||
|
||||
OPEN databases_cursor;
|
||||
|
||||
FETCH NEXT FROM databases_cursor into @name;
|
||||
|
||||
WHILE @@FETCH_STATUS = 0
|
||||
BEGIN
|
||||
set @cmd = 'use ' + @name + ';
|
||||
insert into #guest_users
|
||||
SELECT ''' + @name + ''' as database_name, name, permission_name, state_desc
|
||||
FROM sys.database_principals dpr
|
||||
INNER JOIN sys.database_permissions dpe
|
||||
ON dpr.principal_id = dpe.grantee_principal_id
|
||||
WHERE name = ''guest'' AND permission_name = ''CONNECT''
|
||||
'
|
||||
exec (@cmd)
|
||||
FETCH NEXT FROM databases_cursor into @name;
|
||||
END
|
||||
|
||||
select * from #guest_users order by database_name asc
|
||||
|
||||
drop table #guest_users
|
||||
|
||||
CLOSE databases_cursor;
|
||||
DEALLOCATE databases_cursor;
|
||||
GO
|
||||
Reference in New Issue
Block a user