mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
SSL parser changes to allow SSL specific GRANT commands
This commit is contained in:
@ -28,3 +28,4 @@ tim@work.mysql.com
|
|||||||
tonu@hundin.mysql.fi
|
tonu@hundin.mysql.fi
|
||||||
tonu@x153.internalnet
|
tonu@x153.internalnet
|
||||||
tonu@x3.internalnet
|
tonu@x3.internalnet
|
||||||
|
tonu@volk.internalnet
|
||||||
|
@ -65,6 +65,8 @@ aclocal; autoheader; aclocal; automake; autoconf
|
|||||||
--enable-thread-safe-client \
|
--enable-thread-safe-client \
|
||||||
--with-berkeley-db \
|
--with-berkeley-db \
|
||||||
--with-innodb \
|
--with-innodb \
|
||||||
|
--with-openssl \
|
||||||
|
--with-vio \
|
||||||
--without-pstack \
|
--without-pstack \
|
||||||
--with-extra-tools \
|
--with-extra-tools \
|
||||||
--with-embedded-server
|
--with-embedded-server
|
||||||
|
@ -83,6 +83,7 @@ static SYMBOL symbols[] = {
|
|||||||
{ "CHANGED", SYM(CHANGED),0,0},
|
{ "CHANGED", SYM(CHANGED),0,0},
|
||||||
{ "CHECK", SYM(CHECK_SYM),0,0},
|
{ "CHECK", SYM(CHECK_SYM),0,0},
|
||||||
{ "CHECKSUM", SYM(CHECKSUM_SYM),0,0},
|
{ "CHECKSUM", SYM(CHECKSUM_SYM),0,0},
|
||||||
|
{ "CHIPHER", SYM(CHIPHER_SYM),0,0},
|
||||||
{ "CLOSE", SYM(CLOSE_SYM),0,0},
|
{ "CLOSE", SYM(CLOSE_SYM),0,0},
|
||||||
{ "COLUMN", SYM(COLUMN_SYM),0,0},
|
{ "COLUMN", SYM(COLUMN_SYM),0,0},
|
||||||
{ "COLUMNS", SYM(COLUMNS),0,0},
|
{ "COLUMNS", SYM(COLUMNS),0,0},
|
||||||
@ -190,6 +191,7 @@ static SYMBOL symbols[] = {
|
|||||||
{ "IS", SYM(IS),0,0},
|
{ "IS", SYM(IS),0,0},
|
||||||
{ "ISOLATION", SYM(ISOLATION),0,0},
|
{ "ISOLATION", SYM(ISOLATION),0,0},
|
||||||
{ "ISAM", SYM(ISAM_SYM),0,0},
|
{ "ISAM", SYM(ISAM_SYM),0,0},
|
||||||
|
{ "ISSUER", SYM(ISSUER_SYM),0,0},
|
||||||
{ "JOIN", SYM(JOIN_SYM),0,0},
|
{ "JOIN", SYM(JOIN_SYM),0,0},
|
||||||
{ "KEY", SYM(KEY_SYM),0,0},
|
{ "KEY", SYM(KEY_SYM),0,0},
|
||||||
{ "KEYS", SYM(KEYS),0,0},
|
{ "KEYS", SYM(KEYS),0,0},
|
||||||
@ -277,6 +279,7 @@ static SYMBOL symbols[] = {
|
|||||||
{ "REPAIR", SYM(REPAIR),0,0},
|
{ "REPAIR", SYM(REPAIR),0,0},
|
||||||
{ "REPLACE", SYM(REPLACE),0,0},
|
{ "REPLACE", SYM(REPLACE),0,0},
|
||||||
{ "REPEATABLE", SYM(REPEATABLE_SYM),0,0},
|
{ "REPEATABLE", SYM(REPEATABLE_SYM),0,0},
|
||||||
|
{ "REQUIRE", SYM(REQUIRE_SYM),0,0},
|
||||||
{ "RESET", SYM(RESET_SYM),0,0},
|
{ "RESET", SYM(RESET_SYM),0,0},
|
||||||
{ "RESTORE", SYM(RESTORE_SYM),0,0},
|
{ "RESTORE", SYM(RESTORE_SYM),0,0},
|
||||||
{ "RESTRICT", SYM(RESTRICT),0,0},
|
{ "RESTRICT", SYM(RESTRICT),0,0},
|
||||||
@ -322,6 +325,7 @@ static SYMBOL symbols[] = {
|
|||||||
{ "STRING", SYM(STRING_SYM),0,0},
|
{ "STRING", SYM(STRING_SYM),0,0},
|
||||||
{ "STOP", SYM(STOP_SYM),0,0},
|
{ "STOP", SYM(STOP_SYM),0,0},
|
||||||
{ "STRIPED", SYM(RAID_STRIPED_SYM),0,0},
|
{ "STRIPED", SYM(RAID_STRIPED_SYM),0,0},
|
||||||
|
{ "SUBJECT", SYM(SUBJECT_SYM),0,0},
|
||||||
{ "TABLE", SYM(TABLE_SYM),0,0},
|
{ "TABLE", SYM(TABLE_SYM),0,0},
|
||||||
{ "TABLES", SYM(TABLES),0,0},
|
{ "TABLES", SYM(TABLES),0,0},
|
||||||
{ "TEMPORARY", SYM(TEMPORARY),0,0},
|
{ "TEMPORARY", SYM(TEMPORARY),0,0},
|
||||||
|
@ -145,6 +145,7 @@ typedef struct st_lex {
|
|||||||
char *length,*dec,*change,*name;
|
char *length,*dec,*change,*name;
|
||||||
char *backup_dir; /* For RESTORE/BACKUP */
|
char *backup_dir; /* For RESTORE/BACKUP */
|
||||||
char* to_log; /* For PURGE MASTER LOGS TO */
|
char* to_log; /* For PURGE MASTER LOGS TO */
|
||||||
|
char* ssl_subject,*ssl_issuer,*ssl_chipher;
|
||||||
String *wild;
|
String *wild;
|
||||||
sql_exchange *exchange;
|
sql_exchange *exchange;
|
||||||
|
|
||||||
|
@ -98,7 +98,7 @@ bool my_yyoverflow(short **a, YYSTYPE **b,int *yystacksize);
|
|||||||
%token MIN_SYM
|
%token MIN_SYM
|
||||||
%token SUM_SYM
|
%token SUM_SYM
|
||||||
%token STD_SYM
|
%token STD_SYM
|
||||||
|
%token ABORT_SYM
|
||||||
%token ADD
|
%token ADD
|
||||||
%token ALTER
|
%token ALTER
|
||||||
%token AFTER_SYM
|
%token AFTER_SYM
|
||||||
@ -134,7 +134,6 @@ bool my_yyoverflow(short **a, YYSTYPE **b,int *yystacksize);
|
|||||||
%token BINLOG_SYM
|
%token BINLOG_SYM
|
||||||
%token EVENTS_SYM
|
%token EVENTS_SYM
|
||||||
|
|
||||||
%token ABORT_SYM
|
|
||||||
%token ACTION
|
%token ACTION
|
||||||
%token AGGREGATE_SYM
|
%token AGGREGATE_SYM
|
||||||
%token ALL
|
%token ALL
|
||||||
@ -450,6 +449,10 @@ bool my_yyoverflow(short **a, YYSTYPE **b,int *yystacksize);
|
|||||||
%token SQL_QUOTE_SHOW_CREATE
|
%token SQL_QUOTE_SHOW_CREATE
|
||||||
%token SQL_SLAVE_SKIP_COUNTER
|
%token SQL_SLAVE_SKIP_COUNTER
|
||||||
|
|
||||||
|
%token ISSUER_SYM
|
||||||
|
%token SUBJECT_SYM
|
||||||
|
%token CIPHER_SYM
|
||||||
|
|
||||||
%left SET_VAR
|
%left SET_VAR
|
||||||
%left OR_OR_CONCAT OR
|
%left OR_OR_CONCAT OR
|
||||||
%left AND
|
%left AND
|
||||||
@ -2819,6 +2822,7 @@ keyword:
|
|||||||
| CHANGED {}
|
| CHANGED {}
|
||||||
| CHECKSUM_SYM {}
|
| CHECKSUM_SYM {}
|
||||||
| CHECK_SYM {}
|
| CHECK_SYM {}
|
||||||
|
| CIPHER_SYM {}
|
||||||
| CLOSE_SYM {}
|
| CLOSE_SYM {}
|
||||||
| COMMENT_SYM {}
|
| COMMENT_SYM {}
|
||||||
| COMMIT_SYM {}
|
| COMMIT_SYM {}
|
||||||
@ -2856,6 +2860,7 @@ keyword:
|
|||||||
| INDEXES {}
|
| INDEXES {}
|
||||||
| ISOLATION {}
|
| ISOLATION {}
|
||||||
| ISAM_SYM {}
|
| ISAM_SYM {}
|
||||||
|
| ISSUER_SYM {}
|
||||||
| INNOBASE_SYM {}
|
| INNOBASE_SYM {}
|
||||||
| LAST_SYM {}
|
| LAST_SYM {}
|
||||||
| LEVEL_SYM {}
|
| LEVEL_SYM {}
|
||||||
@ -2909,10 +2914,10 @@ keyword:
|
|||||||
| SESSION_SYM {}
|
| SESSION_SYM {}
|
||||||
| SHARE_SYM {}
|
| SHARE_SYM {}
|
||||||
| SHUTDOWN {}
|
| SHUTDOWN {}
|
||||||
| START_SYM {}
|
|
||||||
| STATUS_SYM {}
|
| STATUS_SYM {}
|
||||||
| STOP_SYM {}
|
| STOP_SYM {}
|
||||||
| STRING_SYM {}
|
| STRING_SYM {}
|
||||||
|
| SUBJECT_SYM {}
|
||||||
| TEMPORARY {}
|
| TEMPORARY {}
|
||||||
| TEXT_SYM {}
|
| TEXT_SYM {}
|
||||||
| TRANSACTION_SYM {}
|
| TRANSACTION_SYM {}
|
||||||
@ -3251,9 +3256,10 @@ grant:
|
|||||||
lex->columns.empty();
|
lex->columns.empty();
|
||||||
lex->grant= lex->grant_tot_col=0;
|
lex->grant= lex->grant_tot_col=0;
|
||||||
lex->select->db=0;
|
lex->select->db=0;
|
||||||
|
lex->ssl_chipher=lex->ssl_subject=lex->ssl_issuer=0;
|
||||||
}
|
}
|
||||||
grant_privileges ON opt_table TO_SYM user_list
|
grant_privileges ON opt_table TO_SYM user_list
|
||||||
grant_option
|
grant_option require_clause
|
||||||
|
|
||||||
grant_privileges:
|
grant_privileges:
|
||||||
grant_privilege_list {}
|
grant_privilege_list {}
|
||||||
@ -3287,6 +3293,27 @@ grant_privilege:
|
|||||||
| FILE_SYM { Lex->grant |= FILE_ACL;}
|
| FILE_SYM { Lex->grant |= FILE_ACL;}
|
||||||
| GRANT OPTION { Lex->grant |= GRANT_ACL;}
|
| GRANT OPTION { Lex->grant |= GRANT_ACL;}
|
||||||
|
|
||||||
|
require_clause: /* empty */
|
||||||
|
| REQUIRE_SYM require_list
|
||||||
|
|
||||||
|
|
||||||
|
require_list: require_list_element AND require_list
|
||||||
|
| require_list_element
|
||||||
|
|
||||||
|
|
||||||
|
require_list_element: SUBJECT_SYM TEXT_STRING
|
||||||
|
{
|
||||||
|
Lex->ssl_subject=$2.str;
|
||||||
|
}
|
||||||
|
| ISSUER_SYM TEXT_STRING
|
||||||
|
{
|
||||||
|
Lex->ssl_issuer=$2.str;
|
||||||
|
}
|
||||||
|
| CHIPHER_SYM TEXT_STRING
|
||||||
|
{
|
||||||
|
Lex->ssl_chipher=$2.str;
|
||||||
|
}
|
||||||
|
|
||||||
opt_table:
|
opt_table:
|
||||||
'*'
|
'*'
|
||||||
{
|
{
|
||||||
|
Reference in New Issue
Block a user