因此,最初的问题是,在MySQL工作台中,我试图修改过程,却一无所获。没有错误只是什么都没发生。结果是,尽管对模式具有完全的权限,因为存储过程的定义者不是我,但我无法查看它的源代码。
设想情况:
Database: Bugs
Users: A, B
Permissions:
grant all privileges on bugs.* to 'A'@'%'
grant all privileges on bugs.* to 'B'@'%'
用户A创建存储过程
create procedure user_A_procedure .
在使用JDBC时,我遇到了一个问题,我在mysql中创建了一个包含员工信息Employee_Id、名称、城市、工资和Year_of_joining的表,我还创建了一个存储过程到同一个数据库,该数据库接受两个输入,并根据加入年份更新员工的薪资。以下是存储过程:
CREATE PROCEDURE proc(IN var1, IN var2)
BEGIN
UPDATE "TABLE" SET Salary=var1+Salary WHERE Year_of_Joining= var2
END
现在,我通过java创建了一个数据库连接到mysql数据库(该连接正在成功地建立)。
但
我希望多个(一个MySQL用户)能够发出类似的命令
CREATE DATABASE dbTest;
但我也希望这些用户都能够看到和访问他们的自己的数据库。
我所能找到的就是如何通过DBA创建数据库并将这个数据库的特权授予特定的用户:
GRANT ALL PRIVILEGES ON dbTest.* TO 'user';
或将所有数据库的权限授予用户:
GRANT ALL PRIVILEGES ON *.* TO 'user';
但这也不是我想要的,因为它需要规模和安全。
1.)mysql中存储过程的替代方法,可以对其进行更改,而不是删除并重新创建
2.)维护数据库版本的简单方法我目前正在手动创建log.sql文件,例如示例log.sql文件
ALTER TABLE `ship`
CHANGE COLUMN `is_deleted` `is_deleted` INT(11) NULL DEFAULT 0 ;
DROP procedure IF EXISTS `get_ship`;
DELIMITER ;;
CREATE PROCEDURE `get_ship`(
)
BEGIN
do something;
end if;
END ;;
DELIMI
我正在尝试在MySQL中创建一个存储的进程。
当我尝试运行它时,我得到了错误:
Access denied for user: '<myuser>' to database '<mydb>'
但是,当我查看此用户的授权时,我得到了:
GRANT USAGE ON *.* TO '<myuser>'@'%' IDENTIFIED BY PASSWORD '<blah>'
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DRO
我想知道是否可以在由mysql执行的sql脚本中切换“连接”用户。
这是对我目标的描述。也许,没有必要对用户进行切换,而另一种解决方案给了我我想要的。
我想编写一个如下所示的数据库创建脚本:
create databse some_db;
create user u@localhost identified by 'pw';
grant all on u.* to u;
-- Here's where I want to switch the user, but *obviously* the
-- following command fails
connec
有没有办法打开PHP/MySQL 5的驱动程序日志记录?是否有一个内部显示正在发生什么的日志..。就像所有数据库活动一样?低级错误?
我正在尝试获取一个简单的PHP页面来调用Windows7上存储的程序。当mysql_error ()失败时,mssql_init不会返回任何错误消息。
考虑到这可能是一个权限问题,我创建了一个新用户,并得到了相同的结果:
CREATE USER 'user1'@'localhost' IDENTIFIED BY 'pass1';
GRANT ALL ON *.* TO 'user1'@'lo