summaryrefslogtreecommitdiff
path: root/netware
diff options
context:
space:
mode:
authorunknown <greg@mysql.com[greg]>2003-03-03 23:00:49 -0500
committerunknown <greg@mysql.com[greg]>2003-03-03 23:00:49 -0500
commit5de78932d11a01adc13dbf16be327a5272e9530e (patch)
tree748e68ebdde84c0aa91b69b84470af42d2b4bfb5 /netware
parentdd67a1768ec2975f9dc0a7a913f16cf9364a6d1a (diff)
downloadmariadb-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.pl125
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";
+