Import-Module Az.Sql -Force
Install-Module -Name SqlServer
$Params = @{
'ServerInstance' = 'atademo.database.windows.net';
'Database' = 'ata-demo';
'Username' = 'ataadmin';
'Password' = 'Admin123';
'Query' = 'select name from sys.database_principals;;'
}
Invoke-Sqlcmd @Params
select name,log_reuse_wait_desc from sys.databases … seznam databazi a pocet ???
alter login glob with password='HESLO123'; … nastaveni hesla pro login na SQL server
alter DATABASE [puvodni.nazev.databaze] modify name=[novy.nazev.databaze]; … prejmenovani databaze
DENY CONNECT TO account_name; … zakaze pripojeni danemu uzivateli
alter login USER disable; … zakaze login daneho uzivatele
select name from sys.database_principals; … seznam uzivatelu v databazi
alter user glob with login=glob; … propojeni uzivatele glob v databazi s loginem na SQL server - uprava SIDu
SELECT RTRIM(name) AS [Segment Name], groupid AS [Group Id], filename AS [File Name],
CAST(size/128.0 AS DECIMAL(10,2)) AS [Allocated Size in MB],
CAST(FILEPROPERTY(name, 'SpaceUsed')/128.0 AS DECIMAL(10,2)) AS [Space Used in MB],
CAST([maxsize]/128.0 AS DECIMAL(10,2)) AS [Max in MB],
CAST([maxsize]/128.0-(FILEPROPERTY(name, 'SpaceUsed')/128.0) AS DECIMAL(10,2)) AS [Available Space in MB],
CAST((CAST(FILEPROPERTY(name, 'SpaceUsed')/128.0 AS DECIMAL(10,2))/CAST([maxsize]/128.0 AS DECIMAL(10,2)))*100 AS DECIMAL(10,2)) AS [Percent Used]
FROM sys.sysfiles
where name='log'
SELECT
R.SESSION_ID,
R.REQUEST_ID AS SESSION_REQUEST_ID,
R.STATUS,
S.HOST_NAME,
C.CLIENT_NET_ADDRESS,
CASE WHEN S.LOGIN_NAME = S.ORIGINAL_LOGIN_NAME THEN S.LOGIN_NAME ELSE S.LOGIN_NAME + ' (' + S.ORIGINAL_LOGIN_NAME + ')' END AS LOGIN_NAME,
S.PROGRAM_NAME,
DB_NAME(R.DATABASE_ID) AS DATABASE_NAME,
R.COMMAND,
ST.TEXT AS QUERY_TEXT,
QP.QUERY_PLAN AS XML_QUERY_PLAN,
R.WAIT_TYPE AS CURRENT_WAIT_TYPE,
R.LAST_WAIT_TYPE,
R.BLOCKING_SESSION_ID,
R.ROW_COUNT,
R.GRANTED_QUERY_MEMORY,
R.OPEN_TRANSACTION_COUNT,
R.USER_ID,
R.PERCENT_COMPLETE,
CASE R.TRANSACTION_ISOLATION_LEVEL
WHEN 0 THEN 'UNSPECIFIED'
WHEN 1 THEN 'READUNCOMITTED'
WHEN 2 THEN 'READCOMMITTED'
WHEN 3 THEN 'REPEATABLE'
WHEN 4 THEN 'SERIALIZABLE'
WHEN 5 THEN 'SNAPSHOT'
ELSE CAST(R.TRANSACTION_ISOLATION_LEVEL AS VARCHAR(32))
END AS TRANSACTION_ISOLATION_LEVEL_NAME
FROM
SYS.DM_EXEC_REQUESTS R
LEFT OUTER JOIN SYS.DM_EXEC_SESSIONS S ON S.SESSION_ID = R.SESSION_ID
LEFT OUTER JOIN SYS.DM_EXEC_CONNECTIONS C ON C.CONNECTION_ID = R.CONNECTION_ID
CROSS APPLY SYS.DM_EXEC_SQL_TEXT(R.SQL_HANDLE) ST
CROSS APPLY SYS.DM_EXEC_QUERY_PLAN(R.PLAN_HANDLE) QP
--WHERE R.STATUS NOT IN ('BACKGROUND','SLEEPING')
;WITH Blockers AS
(
SELECT DISTINCT
blocking_session_id as session_id
FROM sys.dm_exec_requests WITH(NOLOCK)
WHERE blocking_session_id > 0
)
SELECT
'Blocker' as type_desc
, ES.session_id
, ES.transaction_isolation_level
, ER.start_time
, ER.[status]
, ER.command
, ER.wait_type
, ER.wait_time
, ER.blocking_session_id
, '' AS stmt_text
FROM sys.dm_exec_sessions ES WITH(NOLOCK)
LEFT JOIN sys.dm_exec_requests ER WITH(NOLOCK) ON ER.session_id = ES.session_id
INNER JOIN Blockers ON Blockers.session_id = ES.session_id
UNION
SELECT
'Victim' as type_desc
, ES.session_id
, ES.transaction_isolation_level
, ER.start_time
, ER.[status]
, ER.command
, ER.wait_type
, ER.wait_time
, ER.blocking_session_id
, ST.[text] AS stmt_text
FROM sys.dm_exec_sessions ES WITH(NOLOCK)
INNER JOIN sys.dm_exec_requests ER WITH(NOLOCK) ON ER.session_id = ES.session_id
CROSS APPLY SYS.DM_EXEC_SQL_TEXT(ER.sql_handle) AS ST
WHERE blocking_session_id > 0