diff options
author | unknown <greg@mysql.com[greg]> | 2003-03-03 23:00:49 -0500 |
---|---|---|
committer | unknown <greg@mysql.com[greg]> | 2003-03-03 23:00:49 -0500 |
commit | 5de78932d11a01adc13dbf16be327a5272e9530e (patch) | |
tree | 748e68ebdde84c0aa91b69b84470af42d2b4bfb5 /netware | |
parent | dd67a1768ec2975f9dc0a7a913f16cf9364a6d1a (diff) | |
download | mariadb-git-5de78932d11a01adc13dbf16be327a5272e9530e.tar.gz |
novell40b.patch
netware/mysql_fix_privilege_tables.pl:
Import patch novell40b.patch
Diffstat (limited to 'netware')
-rw-r--r-- | netware/mysql_fix_privilege_tables.pl | 125 |
1 files changed, 125 insertions, 0 deletions
diff --git a/netware/mysql_fix_privilege_tables.pl b/netware/mysql_fix_privilege_tables.pl new file mode 100644 index 00000000000..fd5bc11dde1 --- /dev/null +++ b/netware/mysql_fix_privilege_tables.pl @@ -0,0 +1,125 @@ +#----------------------------------------------------------------------------- +# Copyright (C) 2002 MySQL AB +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +#----------------------------------------------------------------------------- + +#----------------------------------------------------------------------------- +# This notice applies to changes, created by or for Novell, Inc., +# to preexisting works for which notices appear elsewhere in this file. + +# Copyright (c) 2003 Novell, Inc. All Rights Reserved. + +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +#----------------------------------------------------------------------------- + +use strict; +use Mysql; + +print "MySQL Fix Privilege Tables Script\n\n"; + +print "NOTE: This script updates your privilege tables to the lastest\n"; +print " specifications!\n\n"; + +#----------------------------------------------------------------------------- +# get the current root password +#----------------------------------------------------------------------------- + +print "In order to log into MySQL to update it, we'll need the current\n"; +print "password for the root user. If you've just installed MySQL, and\n"; +print "you haven't set the root password yet, the password will be blank,\n"; +print "so you should just press enter here.\n\n"; + +print "Enter the current password for root: "; +my $password = <STDIN>; +chomp $password; +print "\n"; + +my $conn = Mysql->connect("localhost", "mysql", "root", $password) + || die "Unable to connect to MySQL."; + +print "OK, successfully used the password, moving on...\n\n"; + + +#----------------------------------------------------------------------------- +# MySQL 4.0.2 +#----------------------------------------------------------------------------- + +print "Adding new fields used by MySQL 4.0.2 to the privilege tables...\n"; +print "NOTE: You can ignore any Duplicate column errors.\n"; +$conn->query(" \ +ALTER TABLE user \ +ADD Show_db_priv enum('N','Y') DEFAULT 'N' NOT NULL AFTER alter_priv, \ +ADD Super_priv enum('N','Y') DEFAULT 'N' NOT NULL AFTER Show_db_priv, \ +ADD Create_tmp_table_priv enum('N','Y') DEFAULT 'N' NOT NULL AFTER Super_priv, \ +ADD Lock_tables_priv enum('N','Y') DEFAULT 'N' NOT NULL AFTER Create_tmp_table_priv, \ +ADD Execute_priv enum('N','Y') DEFAULT 'N' NOT NULL AFTER Lock_tables_priv, \ +ADD Repl_slave_priv enum('N','Y') DEFAULT 'N' NOT NULL AFTER Execute_priv, \ +ADD Repl_client_priv enum('N','Y') DEFAULT 'N' NOT NULL AFTER Repl_slave_priv; \ +") && $conn->query(" \ +UPDATE user SET show_db_priv=select_priv, super_priv=process_priv, execute_priv=process_priv, create_tmp_table_priv='Y', Lock_tables_priv='Y', Repl_slave_priv=file_priv, Repl_client_priv=file_priv where user<>''; \ +"); + +#----------------------------------------------------------------------------- +# MySQL 4.0 Limitations +#----------------------------------------------------------------------------- + +print "Adding new fields used by MySQL 4.0 security limitations...\n"; + +$conn->query(" \ +ALTER TABLE user \ +ADD max_questions int(11) NOT NULL AFTER x509_subject, \ +ADD max_updates int(11) unsigned NOT NULL AFTER max_questions, \ +ADD max_connections int(11) unsigned NOT NULL AFTER max_updates; \ +"); + +#----------------------------------------------------------------------------- +# MySQL 4.0 DB and Host privs +#----------------------------------------------------------------------------- + +print "Adding new fields used by MySQL 4.0 locking and temporary table security...\n"; + +$conn->query(" \ +ALTER TABLE db \ +ADD Create_tmp_table_priv enum('N','Y') DEFAULT 'N' NOT NULL, \ +ADD Lock_tables_priv enum('N','Y') DEFAULT 'N' NOT NULL; \ +"); + +$conn->query(" \ +ALTER TABLE host \ +ADD Create_tmp_table_priv enum('N','Y') DEFAULT 'N' NOT NULL, \ +ADD Lock_tables_priv enum('N','Y') DEFAULT 'N' NOT NULL; \ +"); + +#----------------------------------------------------------------------------- +# done +#----------------------------------------------------------------------------- + +print "\n\nAll done!\n\n"; + +print "Thanks for using MySQL!\n\n"; + |