@chaos and @Braiam have provided good answers on why you aren't getting the behavior you are looking for from fdisk when running as a non-root user. The simple fact is that allowing regular users to read disks directly would allow bypassing file permissions by simply reading the disk data directly, which could be a major problem and certainly would make file and directory permissions completely useless for anything but to prevent simple mistakes.

I'll take a stab at answering the question you probably meant to ask, too: "how do I figure out which partition to mount if I am not root?".

The answer to that, assuming you have a reasonably recent system, is: have a look in /dev/disk/by-id.

There you will find each disk, by bus, model number and serial number, with all detected partitions available as symlinks to device files.

The names there are also persistent, so unlike the /dev/sdXY names, do not change depending on the order in which you plug the disks in or the order in which they are detected. That makes them useful for /etc/fstab, /etc/crypttab and possibly friends.

I see, thank you. I found two ways to get access to a data on a disk, for which you have read permission: 1) using dd: dd if=/dev/sda of=~/sda.image 2) using cat: cat < /dev/sda > ~/sda.image
–
NikitaApr 2 '14 at 13:18

@NikitaYashtaev Regular (non-root) users shouldn't have access to the raw device nodes, even read-only, in the first place. External drives seem to be a special case (at least on Debian, those appear to be mode 1660 owner root:floppy, rather than 1660 root:disk as for internal drives.)
–
Michael KjörlingApr 4 '14 at 7:33

This is because super user or root has complete permissions to probe all devices while the users doesn't have such privileges by default. Whenever it tries it fails hence not listing the details. Some groups may have such privilege too which you can add yourself.