mirror of
https://github.com/MariaDB/server.git
synced 2025-08-01 03:47:19 +03:00
GRANT ... REQUIRE ( for SSL).
client/mysqlmanagerc.c: fix to make it compile after merge sql/lex.h: fixes for GRANT ... REQUIRE sql/sql_lex.h: GRANT ... REQUIRE sql/sql_yacc.yy: GRANT ... REQUIRE tools/mysqlmanager.c: fix to make compile after merge
This commit is contained in:
@ -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[] = {
|
|||||||
{ "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 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:
|
|||||||
| 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:
|
|||||||
| 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:
|
|||||||
| 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:
|
|||||||
| 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:
|
|||||||
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:
|
|||||||
| 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 @@
|
|||||||
* 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>
|
||||||
|
Reference in New Issue
Block a user