1. 问大家个sql方面的问题 SQL 存储过程可以给它设置权限对吧 那么 oracle里面存储过程可以像它这样么
可以的,oracle中存储过程有拥有者和使用者,一般来讲拥有者比使用者有着更高的权限。
SQL> GRANT EXECUTE
ON HIRE_emp
TO Green;
这句表示把存储过程HIRE_emp的执行权限授予Green这个用户
2. 如何修改mysql 存储过程权限
方法如下:
修改mysql 存储过程的definer
修改mysql.proc表 的definer字段
update mysql.proc set definer='root@%' where db='servant_591up'; UPDATE `mysql`.`proc` SET `definer`='root00@%' WHERE `db`='test' AND `name`='jjjj' AND `type`='PROCEDURE'; UPDATE `mysql`.`proc` SET `definer`='wtc_678869@%' WHERE `db`='servant_591up' AND `type`='PROCEDURE';
2.修改sql security
ALTER PROCEDURE www SQL SECURITY INVOKER ; ALTER PROCEDURE www SQL SECURITY DEFINER ;
(1)MySQL存储过程是通过指定SQL SECURITY子句指定执行存储过程的实际用户;
(2)如果SQL SECURITY子句指定为DEFINER,存储过程将使用存储过程的DEFINER执行存储过程,验证调用存储过程的用户是否具有存储过程的execute权限和DEFINER用户是否具有存储过程引用的相关对象的权限;
(3)如果SQL SECURITY子句指定为INVOKER,那么MySQL将使用当前调用存储过程的用户执行此过程,并验证用户是否具有存储过程的execute权限和存储过程引用的相关对象的权限;
(4)如果不显示的指定SQL SECURITY子句,MySQL默认将以DEFINER执行存储过程。
3.执行存储过程授权
GRANT EXECUTE ON test.* TO 'wtc'@'%'; GRANT CREATE ROUTINE,ALTER ROUTINE, SELECT,CREATE, INSERT, UPDATE, DELETE, EXECUTE ON test.* TO 'wtc'@'%' IDENTIFIED BY '111111'
CREATE ROUTINE : 创建存储过程的权限
ALTER ROUTINE : 修改存储过程的权限
4.删除用户
REVOKE all ON test.* FROM wtc@'%'
DELETE FROM user WHERE User='user_name' and Host='host_name';
FLUSH PRIVILEGES;
好文要顶关注我
3. SQLServer 怎么设置可以让某用户只可以执行存储过程而不能直接select存储过程涉及的表
windows登录sql,设置登录名权限,只grant授予他Execute的权限就可以了
4. SQL怎么在存储过程中给登录名赋权限
create procere pro_ww
(
@uname nvarchar(50)
)
as
begin
declare @sql nvarchar(4000)
set @sql='grant select on table student to '+@uname
exec(@sql)
end
5. SQL2008管理器如何设置用户不准查看存储过程即只对用户开放表和视图,但不开放存储过程
你好,你所说的只是简单的数据库,用户权限设置问题可参考:http://database.51cto.com/art/201107/276210.htm 此网友的sqlserver2005用户权限设置的方式去设置即可,方法不会有太大的区别。
6. SqlServer 数据库的存储过程权限怎么设置,只让用户查看存储过程,不让用户修改添加删除存储过程怎么做
用ORACLE就可以轻松实现这个安全管理,但是sql server 就不明了 可以尝试查看SQL SERVER对于权限的分类的文档,sql server帮助里面应该有,用没有那种只能看不能修改和删除的操作的权限
7. sql 用户权限只能执行存储过程
用system登录,创建新用户,然后只grant授予他create procere的权限就可以了,自己试试,用SQL命令建立一下。
8. sql server 2008 中修改存储过程会是否会改变原有用户的权限
肯定不会啊,存储过程和用户权限没关系啊,除非你在存储过程里面修改了用户权限并执行了该存储过程
9. 如何解决执行sql存储过程(大数据量复杂的sql计算操作)时,不影响用户使用
对实时性不是非常必须的功能,不要放在主业务集中操作的同时操作。这个需要引导客户。
系统的开销就在那里摆着,没有别的办法,一运行资源就占了,CPU 资源,数据库资源,内存资源。
两个办法:一个是做一个数据库复制,可以半天复制一次,也可以一天复制一次(闲时复制),根据用户对数据的敏感度决定,存储过程运行不限时间,运行时访问复制数据库,不影响主数据库。需要额外资源:数据库服务器,数据库复制时间和网络资源开销;
第二个是定制成任务,闲时执行结果放到指定表中,或者直接以文件形式导出在服务器指定位置。用的人直接读记录或者读文件就OK 了。
请参考。
10. 在SQL SERVER 2005中如何给某个用户分配执行存储过程的权限
打开 management studio,选择要操作的数据库-->安全性-->用户,选择用户,右击,属性-->安全类型->添加权限-->特定类型的所有对象,选择 存储过程,点击确认后,分配可以分配的 权限,有 control\alter\exeute etc.。之前要创建好用户,并给予登录的权限。