GRANT ... REQUIRE ( for SSL).

parent 545a2af5
...@@ -16,7 +16,7 @@ ...@@ -16,7 +16,7 @@
#define MANAGER_CLIENT_VERSION "1.0" #define MANAGER_CLIENT_VERSION "1.0"
#include <global.h> #include <my_global.h>
#include <my_sys.h> #include <my_sys.h>
#include <m_string.h> #include <m_string.h>
#include <mysql.h> #include <mysql.h>
......
...@@ -83,6 +83,7 @@ static SYMBOL symbols[] = { ...@@ -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[] = { ...@@ -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[] = { ...@@ -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[] = { ...@@ -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 { ...@@ -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); ...@@ -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); ...@@ -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); ...@@ -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 CHIPHER_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: ...@@ -2819,6 +2822,7 @@ keyword:
| CHANGED {} | CHANGED {}
| CHECKSUM_SYM {} | CHECKSUM_SYM {}
| CHECK_SYM {} | CHECK_SYM {}
| CHIPHER_SYM {}
| CLOSE_SYM {} | CLOSE_SYM {}
| COMMENT_SYM {} | COMMENT_SYM {}
| COMMIT_SYM {} | COMMIT_SYM {}
...@@ -2856,6 +2860,7 @@ keyword: ...@@ -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 {}
...@@ -2882,6 +2887,7 @@ keyword: ...@@ -2882,6 +2887,7 @@ keyword:
| NATIONAL_SYM {} | NATIONAL_SYM {}
| NCHAR_SYM {} | NCHAR_SYM {}
| NEXT_SYM {} | NEXT_SYM {}
| NEW_SYM {}
| NO_SYM {} | NO_SYM {}
| OPEN_SYM {} | OPEN_SYM {}
| PACK_KEYS_SYM {} | PACK_KEYS_SYM {}
...@@ -2909,10 +2915,12 @@ keyword: ...@@ -2909,10 +2915,12 @@ keyword:
| SESSION_SYM {} | SESSION_SYM {}
| SHARE_SYM {} | SHARE_SYM {}
| SHUTDOWN {} | SHUTDOWN {}
| SLAVE {}
| START_SYM {} | 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 +3259,10 @@ grant: ...@@ -3251,9 +3259,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 +3296,27 @@ grant_privilege: ...@@ -3287,6 +3296,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:
'*' '*'
{ {
......
...@@ -20,7 +20,7 @@ ...@@ -20,7 +20,7 @@
* Sasha Pachev <sasha@mysql.com> * Sasha Pachev <sasha@mysql.com>
**/ **/
#include <global.h> #include <my_global.h>
#include <my_sys.h> #include <my_sys.h>
#include <m_string.h> #include <m_string.h>
#include <mysql.h> #include <mysql.h>
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment