Eine aufbereitete Darstellung der Quelle

 
     
 
 
Anforderungen  |   Konzepte  |   Entwurf  |   Entwicklung  |   Qualitätssicherung  |   Lebenszyklus  |   Steuerung
 
 
 
 

Benutzer

Quelle  deny_storage.result   Sprache: Lisp

 

#
# Test DENY representation as JSON in mysql.global_priv table
#
SET @q_show_denies =
'SELECT User, Host,
          JSON_PRETTY(JSON_EXTRACT(Priv, ''$.denies'')) AS denies_pretty
   FROM mysql.global_priv
   WHERE JSON_LENGTH(JSON_EXTRACT(Priv, ''$.denies'')) > 0
   ORDER BY User, Host';
PREPARE show_denies FROM @q_show_denies;
CREATE USER u;
CREATE DATABASE d;
DENY SELECT,INSERT ON mysql.* TO u;
DENY UPDATE ON d.* TO u;
EXECUTE show_denies;
User Host denies_pretty
u % [
    {
        "type": "db",
        "db": "mysql",
        "bits": 3
    },
    {
        "type": "db",
        "db": "d",
        "bits": 4
    }
]
REVOKE DENY SELECT  ON mysql.* FROM u;
EXECUTE show_denies;
User Host denies_pretty
u % [
    {
        "type": "db",
        "db": "mysql",
        "bits": 2
    },
    {
        "type": "db",
        "db": "d",
        "bits": 4
    }
]
REVOKE DENY INSERT  ON mysql.* FROM u;
EXECUTE show_denies;
User Host denies_pretty
u % [
    {
        "type": "db",
        "db": "d",
        "bits": 4
    }
]
REVOKE DENY UPDATE ON d.* FROM u;
EXECUTE show_denies;
User Host denies_pretty
# Table level
DENY SELECT,INSERT ON mysql.global_priv TO u;
EXECUTE show_denies;
User Host denies_pretty
u % [
    {
        "type": "table",
        "db": "mysql",
        "table": "global_priv",
        "bits": 3
    }
]
REVOKE DENY INSERT,SELECT ON mysql.global_priv FROM u;
EXECUTE show_denies;
User Host denies_pretty
DENY SELECT(USER) ON mysql.global_priv TO u;
EXECUTE show_denies;
User Host denies_pretty
u % [
    {
        "type": "column",
        "db": "mysql",
        "table": "global_priv",
        "column": "USER",
        "bits": 1
    }
]
DENY UPDATE(USER) ON mysql.global_priv TO u;
EXECUTE show_denies;
User Host denies_pretty
u % [
    {
        "type": "column",
        "db": "mysql",
        "table": "global_priv",
        "column": "USER",
        "bits": 5
    }
]
DENY SELECT ON *.* TO u;
EXECUTE show_denies;
User Host denies_pretty
u % [
    {
        "type": "column",
        "db": "mysql",
        "table": "global_priv",
        "column": "USER",
        "bits": 5
    },
    {
        "type": "global",
        "bits": 1
    }
]
CREATE TABLE sensitive_data (
id INT,
public_info VARCHAR(50),
salary DECIMAL(10,2),
ssn VARCHAR(11),
address VARCHAR(100)
);
DENY SELECT(salary,ssn) ON sensitive_data TO u;
EXECUTE show_denies;
User Host denies_pretty
u % [
    {
        "type": "column",
        "db": "mysql",
        "table": "global_priv",
        "column": "USER",
        "bits": 5
    },
    {
        "type": "global",
        "bits": 1
    },
    {
        "type": "column",
        "db": "test",
        "table": "sensitive_data",
        "column": "salary",
        "bits": 1
    },
    {
        "type": "column",
        "db": "test",
        "table": "sensitive_data",
        "column": "ssn",
        "bits": 1
    }
]
GRANT ALL PRIVILEGES on *.* TO u WITH GRANT OPTION;
REVOKE ALL PRIVILEGES, GRANT OPTION FROM u;
# REVOKE ALL PRIVILEGES clears DENY entries
SHOW GRANTS FOR u;
Grants for u@%
GRANT USAGE ON *.* TO `u`@`%`
# END SHOW GRANTS
EXECUTE show_denies;
User Host denies_pretty
#
# Identifiers that require JSON escaping (double-quotes, backslash, etc.)
#
CREATE DATABASE `a"b\c`;
CREATE TABLE `a"b\c`.`t"1` (
`col"x` INT,
normal_col INT
);
DENY SELECT ON `a"b\c`.* TO u;
EXECUTE show_denies;
User Host denies_pretty
u % [
    {
        "type": "db",
        "db": "a\"b\\c",
        "bits": 1
    }
]
DENY INSERT ON `a"b\c`.`t"1` TO u;
EXECUTE show_denies;
User Host denies_pretty
u % [
    {
        "type": "db",
        "db": "a\"b\\c",
        "bits": 1
    },
    {
        "type": "table",
        "db": "a\"b\\c",
        "table": "t\"1",
        "bits": 2
    }
]
DENY UPDATE(`col"x`) ON `a"b\c`.`t"1` TO u;
EXECUTE show_denies;
User Host denies_pretty
u % [
    {
        "type": "db",
        "db": "a\"b\\c",
        "bits": 1
    },
    {
        "type": "table",
        "db": "a\"b\\c",
        "table": "t\"1",
        "bits": 2
    },
    {
        "type": "column",
        "db": "a\"b\\c",
        "table": "t\"1",
        "column": "col\"x",
        "bits": 4
    }
]
# Verify SHOW GRANTS round-trips the special names
SHOW GRANTS FOR u;
Grants for u@%
GRANT USAGE ON *.* TO `u`@`%`
DENY SELECT ON `a"b\c`.* TO `u`@`%`
DENY INSERT, UPDATE (`col"x`) ON `a"b\c`.`t"1` TO `u`@`%`
# Verify REVOKE works with the special names
REVOKE DENY UPDATE(`col"x`) ON `a"b\c`.`t"1` FROM u;
EXECUTE show_denies;
User Host denies_pretty
u % [
    {
        "type": "db",
        "db": "a\"b\\c",
        "bits": 1
    },
    {
        "type": "table",
        "db": "a\"b\\c",
        "table": "t\"1",
        "bits": 2
    }
]
REVOKE DENY INSERT ON `a"b\c`.`t"1` FROM u;
REVOKE DENY SELECT ON `a"b\c`.* FROM u;
EXECUTE show_denies;
User Host denies_pretty
DROP TABLE `a"b\c`.`t"1`;
DROP DATABASE `a"b\c`;
DEALLOCATE PREPARE show_denies;
DROP USER u;
DROP DATABASE d;
DROP TABLE sensitive_data;

Messung V0.5 in Prozent
C=80 H=100 G=90

¤ Dauer der Verarbeitung: 0.13 Sekunden  (vorverarbeitet am  2026-10-08) ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

PVS Prover

Isabelle Prover

NIST Cobol Testsuite

Cephes Mathematical Library

Vienna Development Method

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.






                                                                                                                                                                                                                                                                                                                                                                                                     


Neuigkeiten

     Aktuelles
     Motto des Tages

Open Source Software

     Quellcodebibliothek
     Eigene Quellcodes
     Fremde Quellcodes
     Suchen

Jenseits des Üblichen ....
    

Besucherstatistik

Besucherstatistik

Statistik
#Sources=1126864
#Domains=1897691