STIGQter STIGQter: STIG Summary: Microsoft Azure SQL Database Security Technical Implementation Guide Version: 2 Release: 3 Benchmark Date: 02 Jul 2025:

Database objects (including but not limited to tables, indexes, storage, stored procedures, functions, triggers, links to software external to Azure SQL Database, etc.) must be owned by database/Azure SQL Database principals authorized for ownership.

DISA Rule

SV-255306r960960_rule

Vulnerability Number

V-255306

Group Title

SRG-APP-000133-DB-000200

Rule Version

ASQL-00-001300

Severity

CAT II

CCI(s)

Weight

10

Fix Recommendation

Document and obtain approval for any account(s) authorized for object ownership.

If necessary, use the ALTER AUTHORIZATION command to change object ownership to an authorized account. Example provided below.

ALTER AUTHORIZATION ON OBJECT::test.table TO AuthorizedUser;

https://docs.microsoft.com/en-us/sql/t-sql/statements/alter-authorization-transact-sql

Check Contents

Review system documentation to identify Azure SQL Database accounts authorized to own database objects.

If the Azure SQL Database ownership list does not exist or needs to be updated, this is a finding.

The following query can be of use in making this determination:

;with objects_cte as
(SELECT o.name, o.type_desc,
CASE
WHEN o.principal_id is null then s.principal_id
ELSE o.principal_id
END as principal_id
FROM sys.objects o
INNER JOIN sys.schemas s
ON o.schema_id = s.schema_id
WHERE o.is_ms_shipped = 0
)
SELECT cte.name, cte.type_desc, dp.name as ObjectOwner
FROM objects_cte cte
INNER JOIN sys.database_principals dp
ON cte.principal_id = dp.principal_id
ORDER BY dp.name, cte.name

If any of the listed owners is not authorized, this is a finding.

Vulnerability Number

V-255306

Documentable

False

Rule Version

ASQL-00-001300

Severity Override Guidance

Review system documentation to identify Azure SQL Database accounts authorized to own database objects.

If the Azure SQL Database ownership list does not exist or needs to be updated, this is a finding.

The following query can be of use in making this determination:

;with objects_cte as
(SELECT o.name, o.type_desc,
CASE
WHEN o.principal_id is null then s.principal_id
ELSE o.principal_id
END as principal_id
FROM sys.objects o
INNER JOIN sys.schemas s
ON o.schema_id = s.schema_id
WHERE o.is_ms_shipped = 0
)
SELECT cte.name, cte.type_desc, dp.name as ObjectOwner
FROM objects_cte cte
INNER JOIN sys.database_principals dp
ON cte.principal_id = dp.principal_id
ORDER BY dp.name, cte.name

If any of the listed owners is not authorized, this is a finding.

Check Content Reference

M

Target Key

5500