Avoid CLIENT SPECIFIED / USING CLIENT in Cloud (Multi-Tenant Isolation)
WarningSecurity & RobustnessQuickFix Ready#EC NO_CLIENT_SPECRemote Enabled
Overview
Avoid USING CLIENT or CLIENT SPECIFIED in ABAP SQL.
ATC Finding Message:
Avoid explicit client specification in ABAP SQL
Rationale
The clauses CLIENT SPECIFIED and USING CLIENT override automatic client handling in OpenSQL. In multi-tenant cloud architectures (SAP BTP ABAP Environment, SAP S/4HANA Cloud), querying data across tenants violates multi-tenant data privacy laws (GDPR) and breaks tenant sandbox isolation.
Non-Compliant
abap
" Insecure: Reads data across client boundaries
SELECT * FROM zorders CLIENT SPECIFIED WHERE mandt = '200'.Compliant
abap
" Secure: Native automatic client handling preserves tenant sandbox
SELECT order_id, status FROM zorders WHERE status = 'OPEN'.Automated QuickFix
This rule provides an automated QuickFix directly in Eclipse ABAP Development Tools (ADT):
- Position the cursor on the flagged statement.
- Press Ctrl + 1 (Quick Assist).
- Select the automated refactoring to apply the clean syntax immediately.
Suppression
To suppress findings for this rule, append the pseudo-comment to the statement:
abap
" Standard pseudo-comment:
... "#EC NO_CLIENT_SPEC
" SAP CI_ prefix format:
... "#EC CI_NO_CLIENT_SPECRelated Rules
- Avoid UPDATE or DELETE Without a WHERE Condition (Catastrophic Data Wipe Prevention) —
#EC NO_UNFILT_DML - Avoid Database Access Inside Loops (N+1 Query Antipattern) —
#EC NO_DB_IN_LOOP - Prevent Empty Driver Tables in FOR ALL ENTRIES (Full Table Scan Bug) —
#EC NO_EMPTY_FAE
Technical Details
- Native ATC Class:
ZCL_SKYLINT_NO_CLIENT_SPEC - Implementation File: zcl_skylint_no_client_spec.clas.abap