Commit 91510658 authored by sasha@mysql.sashanet.com's avatar sasha@mysql.sashanet.com
Browse files

GRANT ... REQUIRE ( for SSL).

parent 545a2af5
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -16,7 +16,7 @@

#define MANAGER_CLIENT_VERSION "1.0"

#include <global.h>
#include <my_global.h>
#include <my_sys.h>
#include <m_string.h>
#include <mysql.h>
+4 −0
Original line number Diff line number Diff line
@@ -83,6 +83,7 @@ static SYMBOL symbols[] = {
  { "CHANGED",		SYM(CHANGED),0,0},
  { "CHECK",		SYM(CHECK_SYM),0,0},
  { "CHECKSUM",		SYM(CHECKSUM_SYM),0,0},
  { "CHIPHER",		SYM(CHIPHER_SYM),0,0},
  { "CLOSE",		SYM(CLOSE_SYM),0,0},
  { "COLUMN",		SYM(COLUMN_SYM),0,0},
  { "COLUMNS",		SYM(COLUMNS),0,0},
@@ -190,6 +191,7 @@ static SYMBOL symbols[] = {
  { "IS",		SYM(IS),0,0},
  { "ISOLATION",	SYM(ISOLATION),0,0},
  { "ISAM",		SYM(ISAM_SYM),0,0},
  { "ISSUER",		SYM(ISSUER_SYM),0,0},
  { "JOIN",		SYM(JOIN_SYM),0,0},
  { "KEY",		SYM(KEY_SYM),0,0},
  { "KEYS",		SYM(KEYS),0,0},
@@ -277,6 +279,7 @@ static SYMBOL symbols[] = {
  { "REPAIR",		SYM(REPAIR),0,0},
  { "REPLACE",		SYM(REPLACE),0,0},
  { "REPEATABLE",	SYM(REPEATABLE_SYM),0,0},
  { "REQUIRE",	        SYM(REQUIRE_SYM),0,0},
  { "RESET",		SYM(RESET_SYM),0,0},
  { "RESTORE",		SYM(RESTORE_SYM),0,0},
  { "RESTRICT",		SYM(RESTRICT),0,0},
@@ -322,6 +325,7 @@ static SYMBOL symbols[] = {
  { "STRING",		SYM(STRING_SYM),0,0},
  { "STOP",		SYM(STOP_SYM),0,0},
  { "STRIPED",		SYM(RAID_STRIPED_SYM),0,0},
  { "SUBJECT",		SYM(SUBJECT_SYM),0,0},
  { "TABLE",		SYM(TABLE_SYM),0,0},
  { "TABLES",		SYM(TABLES),0,0},
  { "TEMPORARY",	SYM(TEMPORARY),0,0},
+1 −0
Original line number Diff line number Diff line
@@ -145,6 +145,7 @@ typedef struct st_lex {
  char *length,*dec,*change,*name;
  char *backup_dir;				/* For RESTORE/BACKUP */
  char* to_log;                                 /* For PURGE MASTER LOGS TO */
  char* ssl_subject,*ssl_issuer,*ssl_chipher;
  String *wild;
  sql_exchange *exchange;

+33 −3
Original line number Diff line number Diff line
@@ -98,7 +98,7 @@ bool my_yyoverflow(short **a, YYSTYPE **b,int *yystacksize);
%token	MIN_SYM
%token	SUM_SYM
%token	STD_SYM

%token  ABORT_SYM
%token	ADD
%token	ALTER
%token	AFTER_SYM
@@ -134,7 +134,6 @@ bool my_yyoverflow(short **a, YYSTYPE **b,int *yystacksize);
%token  BINLOG_SYM
%token  EVENTS_SYM

%token	ABORT_SYM
%token	ACTION
%token	AGGREGATE_SYM
%token	ALL
@@ -450,6 +449,10 @@ bool my_yyoverflow(short **a, YYSTYPE **b,int *yystacksize);
%token  SQL_QUOTE_SHOW_CREATE
%token  SQL_SLAVE_SKIP_COUNTER

%token  ISSUER_SYM
%token  SUBJECT_SYM
%token  CHIPHER_SYM

%left   SET_VAR
%left	OR_OR_CONCAT OR
%left	AND
@@ -2819,6 +2822,7 @@ keyword:
	| CHANGED		{}
	| CHECKSUM_SYM		{}
	| CHECK_SYM		{}
	| CHIPHER_SYM		{}
	| CLOSE_SYM		{}
	| COMMENT_SYM		{}
	| COMMIT_SYM		{}
@@ -2856,6 +2860,7 @@ keyword:
	| INDEXES		{}
	| ISOLATION		{}
	| ISAM_SYM		{}
	| ISSUER_SYM		{}
	| INNOBASE_SYM		{}
	| LAST_SYM		{}
	| LEVEL_SYM		{}
@@ -2882,6 +2887,7 @@ keyword:
	| NATIONAL_SYM		{}
	| NCHAR_SYM		{}
	| NEXT_SYM		{}
	| NEW_SYM		{}
	| NO_SYM		{}
	| OPEN_SYM		{}
	| PACK_KEYS_SYM		{}
@@ -2909,10 +2915,12 @@ keyword:
	| SESSION_SYM		{}
	| SHARE_SYM		{}
	| SHUTDOWN		{}
        | SLAVE		        {}
	| START_SYM		{}
	| STATUS_SYM		{}
	| STOP_SYM		{}
	| STRING_SYM		{}
	| SUBJECT_SYM		{}
	| TEMPORARY		{}
	| TEXT_SYM		{}
	| TRANSACTION_SYM	{}
@@ -3251,9 +3259,10 @@ grant:
	  lex->columns.empty();
	  lex->grant= lex->grant_tot_col=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_option
	grant_option require_clause

grant_privileges:
	grant_privilege_list {}
@@ -3287,6 +3296,27 @@ grant_privilege:
	| FILE_SYM	{ Lex->grant |= FILE_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:
	'*'
	  {
+1 −1
Original line number Diff line number Diff line
@@ -20,7 +20,7 @@
 *   Sasha Pachev <sasha@mysql.com>
 **/

#include <global.h>
#include <my_global.h>
#include <my_sys.h>
#include <m_string.h>
#include <mysql.h>