w3resource

How to Restrict Schema Modifications in SQL with DDL Triggers?


Restricting Schema Modifications with DDL Triggers

Write a SQL query to restrict schema modifications using DDL triggers.

Solution:

-- Create a DDL trigger to prevent unauthorized schema changes.
CREATE TRIGGER PreventSchemaChanges
ON DATABASE
FOR ALTER_TABLE, DROP_TABLE
AS
BEGIN
    PRINT 'Schema changes are not allowed.';
    ROLLBACK;
END;

Explanation:

  • Purpose of the Query :
    • The goal is to demonstrate how to prevent unauthorized schema modifications using DDL triggers.
  • Key Components :
    • CREATE TRIGGER: Defines a trigger to monitor schema changes.
    • FOR ALTER_TABLE, DROP_TABLE: Specifies the events to monitor.
    • ROLLBACK: Reverts unauthorized changes.
  • Why Use DDL Triggers? :
    • DDL triggers protect the database schema from accidental or malicious changes.
    • They enforce change control policies.
  • Real-World Application :
    • In production environments, DDL triggers prevent schema drift.

Additional Notes:

  • Use DDL triggers to enforce governance and compliance.
  • Regularly test triggers to ensure they behave as expected.
  • Important Considerations:
    • Avoid overly restrictive triggers that hinder legitimate changes.

For more Practice: Solve these Related Problems:

  • Write a SQL query to create a DDL trigger that prevents any ALTER TABLE operations on the Production schema.
  • Write a SQL query to create a trigger that logs all CREATE TABLE operations in the database.
  • Write a SQL query to prevent DROP TABLE operations on tables in the Sales schema using a DDL trigger.
  • Write a SQL query to notify administrators via email when a schema modification is attempted.


Have another way to solve this solution? Contribute your code (and comments) through Disqus.

Previous SQL Exercise: Auditing user Access to Sensitive Data.
Next SQL Exercise: Encrypting a Database Column.

What is the difficulty level of this exercise?

Test your Programming skills with w3resource's quiz.



Follow us on Facebook and Twitter for latest update.