我想检查当前登录到我的SQL服务器的用户是否有权创建数据库。
我尝试过以下陈述:
SELECT HAS_PERMS_BY_NAME(db_name(), 'DATABASE', 'CREATE')
SELECT HAS_PERMS_BY_NAME(null, 'DATABASE', 'CREATE')
SELECT HAS_PERMS_BY_NAME(null, null, 'CREATE DATABASE')
但是他们中的每一个都返回NULL
而不是1
,尽管我确实有权创建新的数据库。
我认为它应该通过运行1
返回SELECT HAS_PERMS_BY_NAME(null, null, 'VIEW SERVER STATE');
来返回1
:)
我错过了什么?
答案 0 :(得分:2)
在我的测试系统上,我能够成功运行:
SELECT has_perms_by_name(null, null, 'CREATE ANY DATABASE');
该权限与CREATE DATABASE
略有不同,但可能适合您。
答案 1 :(得分:1)
我可能只有found it。
SELECT IS_SRVROLEMEMBER ( 'dbcreator' )
答案 2 :(得分:0)
public class Lemonade {
static int m = 150;
private static Scanner scan;
public static void main(String[] args) {
int day = 1;
for(int gameover = m; gameover > 0; day++) {
int Random = (int) (Math.random() * 100);
if(Random <= 25) {
System.out.println("Great Chance!");
System.out.println("--------------------------------");
}
else if(Random <= 50) {
System.out.println("Good Chance!");
System.out.println("--------------------------------");
}
else if(Random <= 75) {
System.out.println("Bad Chance!");
System.out.println("--------------------------------");
}
else if(Random <= 100) {
System.out.println("Awful Chance!");
System.out.println("--------------------------------");
}
int count = 0;
int none = 0;
scan = new Scanner(System.in);
System.out.println("Enter a number between 0 and " + m + "!");
count = scan.nextInt();
if(count >= none && count <= m) {
System.out.println("You entered " + count + "!");
System.out.println("--------------------------------");
day = day + 1;
m = m - count;
System.out.println("Day " + day);
}
else {
System.out.println("Enter a number between 0 and " + m + ".");
count = scan.nextInt();
}
}
}
}